From a28624574d8a62072e8d566ac9b1ecfde0e55fc9 Mon Sep 17 00:00:00 2001 From: Anthony Perkins Date: Fri, 10 Mar 2023 16:38:45 +0000 Subject: [PATCH] Add coc.nvim back with simpler config --- pack/acp/opt/coc.nvim/.gitignore | 13 + pack/acp/opt/coc.nvim/LICENSE.md | 7 + pack/acp/opt/coc.nvim/Readme.md | 845 ++++ pack/acp/opt/coc.nvim/autoload/coc.vim | 157 + pack/acp/opt/coc.nvim/autoload/coc/api.vim | 898 ++++ pack/acp/opt/coc.nvim/autoload/coc/client.vim | 386 ++ pack/acp/opt/coc.nvim/autoload/coc/color.vim | 610 +++ pack/acp/opt/coc.nvim/autoload/coc/compat.vim | 203 + pack/acp/opt/coc.nvim/autoload/coc/cursor.vim | 59 + pack/acp/opt/coc.nvim/autoload/coc/dialog.vim | 753 +++ pack/acp/opt/coc.nvim/autoload/coc/dict.vim | 32 + pack/acp/opt/coc.nvim/autoload/coc/float.vim | 1459 ++++++ pack/acp/opt/coc.nvim/autoload/coc/helper.vim | 148 + .../opt/coc.nvim/autoload/coc/highlight.vim | 811 ++++ pack/acp/opt/coc.nvim/autoload/coc/list.vim | 466 ++ pack/acp/opt/coc.nvim/autoload/coc/math.vim | 11 + pack/acp/opt/coc.nvim/autoload/coc/notify.vim | 539 +++ pack/acp/opt/coc.nvim/autoload/coc/prompt.vim | 216 + pack/acp/opt/coc.nvim/autoload/coc/pum.vim | 622 +++ pack/acp/opt/coc.nvim/autoload/coc/rpc.vim | 236 + .../acp/opt/coc.nvim/autoload/coc/snippet.vim | 155 + pack/acp/opt/coc.nvim/autoload/coc/string.vim | 210 + pack/acp/opt/coc.nvim/autoload/coc/task.vim | 179 + .../opt/coc.nvim/autoload/coc/terminal.vim | 115 + pack/acp/opt/coc.nvim/autoload/coc/ui.vim | 567 +++ pack/acp/opt/coc.nvim/autoload/coc/util.vim | 659 +++ pack/acp/opt/coc.nvim/autoload/coc/vtext.vim | 91 + pack/acp/opt/coc.nvim/autoload/coc/window.vim | 210 + pack/acp/opt/coc.nvim/autoload/health/coc.vim | 100 + pack/acp/opt/coc.nvim/bin/fuzzy.wasm | Bin 0 -> 18363 bytes pack/acp/opt/coc.nvim/bin/prompt.js | 108 + pack/acp/opt/coc.nvim/bin/strwidth.wasm | Bin 0 -> 15630 bytes pack/acp/opt/coc.nvim/bin/terminateProcess.sh | 12 + pack/acp/opt/coc.nvim/build/index.js | 295 ++ pack/acp/opt/coc.nvim/doc/coc-api.txt | 414 ++ pack/acp/opt/coc.nvim/doc/coc-config.txt | 1793 +++++++ pack/acp/opt/coc.nvim/doc/coc.txt | 4137 +++++++++++++++++ pack/acp/opt/coc.nvim/history.md | 1844 ++++++++ pack/acp/opt/coc.nvim/lua/coc/highlight.lua | 85 + pack/acp/opt/coc.nvim/package.json | 17 + pack/acp/opt/coc.nvim/plugin/coc.vim | 796 ++++ vimrc | 4 + 42 files changed, 20262 insertions(+) create mode 100644 pack/acp/opt/coc.nvim/.gitignore create mode 100644 pack/acp/opt/coc.nvim/LICENSE.md create mode 100644 pack/acp/opt/coc.nvim/Readme.md create mode 100644 pack/acp/opt/coc.nvim/autoload/coc.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/api.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/client.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/color.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/compat.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/cursor.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/dialog.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/dict.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/float.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/helper.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/highlight.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/list.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/math.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/notify.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/prompt.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/pum.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/rpc.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/snippet.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/string.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/task.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/terminal.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/ui.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/util.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/vtext.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/coc/window.vim create mode 100644 pack/acp/opt/coc.nvim/autoload/health/coc.vim create mode 100755 pack/acp/opt/coc.nvim/bin/fuzzy.wasm create mode 100644 pack/acp/opt/coc.nvim/bin/prompt.js create mode 100755 pack/acp/opt/coc.nvim/bin/strwidth.wasm create mode 100755 pack/acp/opt/coc.nvim/bin/terminateProcess.sh create mode 100644 pack/acp/opt/coc.nvim/build/index.js create mode 100644 pack/acp/opt/coc.nvim/doc/coc-api.txt create mode 100644 pack/acp/opt/coc.nvim/doc/coc-config.txt create mode 100644 pack/acp/opt/coc.nvim/doc/coc.txt create mode 100644 pack/acp/opt/coc.nvim/history.md create mode 100644 pack/acp/opt/coc.nvim/lua/coc/highlight.lua create mode 100644 pack/acp/opt/coc.nvim/package.json create mode 100644 pack/acp/opt/coc.nvim/plugin/coc.vim diff --git a/pack/acp/opt/coc.nvim/.gitignore b/pack/acp/opt/coc.nvim/.gitignore new file mode 100644 index 0000000..f9ec5e3 --- /dev/null +++ b/pack/acp/opt/coc.nvim/.gitignore @@ -0,0 +1,13 @@ +lib +*.map +coverage +__pycache__ +.pyc +.log +src +publish.sh +doc/tags +doc/tags-cn +node_modules +src/__tests__/tags +typings diff --git a/pack/acp/opt/coc.nvim/LICENSE.md b/pack/acp/opt/coc.nvim/LICENSE.md new file mode 100644 index 0000000..bee2bf1 --- /dev/null +++ b/pack/acp/opt/coc.nvim/LICENSE.md @@ -0,0 +1,7 @@ +Copyright 2018-2018 by Qiming Zhao aaa + +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. diff --git a/pack/acp/opt/coc.nvim/Readme.md b/pack/acp/opt/coc.nvim/Readme.md new file mode 100644 index 0000000..b5336b6 --- /dev/null +++ b/pack/acp/opt/coc.nvim/Readme.md @@ -0,0 +1,845 @@ +

+ + Logo + +

Make your Vim/Neovim as smart as VSCode

+

+ Software License + Actions + Codecov Coverage Status + Doc + Gitter +

+

+ +--- + +Gif + +_Custom popup menu with snippet support_ + +## Why? + +- ๐Ÿš€ **Fast**: separated NodeJS process that does not slow down Vim most of the time. +- ๐Ÿ’Ž **Reliable**: typed language, tested with CI. +- ๐ŸŒŸ **Featured**: all LSP 3.16 features are supported, see `:h coc-lsp`. +- โค๏ธ **Flexible**: [configured like VS Code](https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file), [Coc extensions function similarly to VS Code extensions](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions) + +## Quick Start + +Make sure use Vim >= 8.1.1719 or Neovim >= 0.4.0. + +Install [nodejs](https://nodejs.org/en/download/) >= 14.14: + +```bash +curl -sL install-node.vercel.app/lts | bash +``` + +For [vim-plug](https://github.com/junegunn/vim-plug) users: + +```vim +" Use release branch (recommend) +Plug 'neoclide/coc.nvim', {'branch': 'release'} + +" Or build from source code by using yarn: https://yarnpkg.com +Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'} +``` + +in your `.vimrc` or `init.vim`, then restart Vim and run `:PlugInstall`. + +Checkout [Install +coc.nvim](https://github.com/neoclide/coc.nvim/wiki/Install-coc.nvim) for +more info. + +You **have to** install coc extension or configure language servers for +LSP support. + +Install extensions like: + + :CocInstall coc-json coc-tsserver + +Or configure language server in `coc-settings.json` opened by +`:CocConfig`, like: + +```json +{ + "languageserver": { + "go": { + "command": "gopls", + "rootPatterns": ["go.mod"], + "trace.server": "verbose", + "filetypes": ["go"] + } + } +} +``` + +Checkout the wiki for more details: + +- [Completion with sources](https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources) +- [Using the configuration file](https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file) +- [Using coc extensions](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions) +- [Configure language servers](https://github.com/neoclide/coc.nvim/wiki/Language-servers) +- [F.A.Q](https://github.com/neoclide/coc.nvim/wiki/F.A.Q) + +Checkout `:h coc-nvim` for Vim interface. + +## Example Vim configuration + +Configuration is required to make coc.nvim easier to work with, since it +doesn't change your key-mappings or Vim options. This is done as much as +possible to avoid conflict with your other plugins. + +**โ—๏ธImportant**: Some Vim plugins could change key mappings. Please use +command like`:verbose imap ` to make sure that your keymap has taken effect. + +```vim + +" May need for Vim (not Neovim) since coc.nvim calculates byte offset by count +" utf-8 byte sequence +set encoding=utf-8 +" Some servers have issues with backup files, see #649 +set nobackup +set nowritebackup + +" Having longer updatetime (default is 4000 ms = 4s) leads to noticeable +" delays and poor user experience +set updatetime=300 + +" Always show the signcolumn, otherwise it would shift the text each time +" diagnostics appear/become resolved +set signcolumn=yes + +" Use tab for trigger completion with characters ahead and navigate +" NOTE: There's always complete item selected by default, you may want to enable +" no select by `"suggest.noselect": true` in your configuration file +" NOTE: Use command ':verbose imap ' to make sure tab is not mapped by +" other plugin before putting this into your config +inoremap + \ coc#pum#visible() ? coc#pum#next(1) : + \ CheckBackspace() ? "\" : + \ coc#refresh() +inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" + +" Make to accept selected completion item or notify coc.nvim to format +" u breaks current undo, please make your own choice +inoremap coc#pum#visible() ? coc#pum#confirm() + \: "\u\\=coc#on_enter()\" + +function! CheckBackspace() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction + +" Use to trigger completion +if has('nvim') + inoremap coc#refresh() +else + inoremap coc#refresh() +endif + +" Use `[g` and `]g` to navigate diagnostics +" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list +nmap [g (coc-diagnostic-prev) +nmap ]g (coc-diagnostic-next) + +" GoTo code navigation +nmap gd (coc-definition) +nmap gy (coc-type-definition) +nmap gi (coc-implementation) +nmap gr (coc-references) + +" Use K to show documentation in preview window +nnoremap K :call ShowDocumentation() + +function! ShowDocumentation() + if CocAction('hasProvider', 'hover') + call CocActionAsync('doHover') + else + call feedkeys('K', 'in') + endif +endfunction + +" Highlight the symbol and its references when holding the cursor +autocmd CursorHold * silent call CocActionAsync('highlight') + +" Symbol renaming +nmap rn (coc-rename) + +" Formatting selected code +xmap f (coc-format-selected) +nmap f (coc-format-selected) + +augroup mygroup + autocmd! + " Setup formatexpr specified filetype(s) + autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') + " Update signature help on jump placeholder + autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') +augroup end + +" Applying code actions to the selected code block +" Example: `aap` for current paragraph +xmap a (coc-codeaction-selected) +nmap a (coc-codeaction-selected) + +" Remap keys for applying code actions at the cursor position +nmap ac (coc-codeaction-cursor) +" Remap keys for apply code actions affect whole buffer +nmap as (coc-codeaction-source) +" Apply the most preferred quickfix action to fix diagnostic on the current line +nmap qf (coc-fix-current) + +" Remap keys for applying refactor code actions +nmap re (coc-codeaction-refactor) +xmap r (coc-codeaction-refactor-selected) +nmap r (coc-codeaction-refactor-selected) + +" Run the Code Lens action on the current line +nmap cl (coc-codelens-action) + +" Map function and class text objects +" NOTE: Requires 'textDocument.documentSymbol' support from the language server +xmap if (coc-funcobj-i) +omap if (coc-funcobj-i) +xmap af (coc-funcobj-a) +omap af (coc-funcobj-a) +xmap ic (coc-classobj-i) +omap ic (coc-classobj-i) +xmap ac (coc-classobj-a) +omap ac (coc-classobj-a) + +" Remap and to scroll float windows/popups +if has('nvim-0.4.0') || has('patch-8.2.0750') + nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" +endif + +" Use CTRL-S for selections ranges +" Requires 'textDocument/selectionRange' support of language server +nmap (coc-range-select) +xmap (coc-range-select) + +" Add `:Format` command to format current buffer +command! -nargs=0 Format :call CocActionAsync('format') + +" Add `:Fold` command to fold current buffer +command! -nargs=? Fold :call CocAction('fold', ) + +" Add `:OR` command for organize imports of the current buffer +command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') + +" Add (Neo)Vim's native statusline support +" NOTE: Please see `:h coc-status` for integrations with external plugins that +" provide custom statusline: lightline.vim, vim-airline +set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} + +" Mappings for CoCList +" Show all diagnostics +nnoremap a :CocList diagnostics +" Manage extensions +nnoremap e :CocList extensions +" Show commands +nnoremap c :CocList commands +" Find symbol of current document +nnoremap o :CocList outline +" Search workspace symbols +nnoremap s :CocList -I symbols +" Do default action for next item +nnoremap j :CocNext +" Do default action for previous item +nnoremap k :CocPrev +" Resume latest coc list +nnoremap p :CocListResume +``` + +## Example Lua configuration + +NOTE: This only works in Neovim 0.7.0dev+. + +```lua +-- Some servers have issues with backup files, see #649 +vim.opt.backup = false +vim.opt.writebackup = false + +-- Having longer updatetime (default is 4000 ms = 4s) leads to noticeable +-- delays and poor user experience +vim.opt.updatetime = 300 + +-- Always show the signcolumn, otherwise it would shift the text each time +-- diagnostics appeared/became resolved +vim.opt.signcolumn = "yes" + +local keyset = vim.keymap.set +-- Autocomplete +function _G.check_back_space() + local col = vim.fn.col('.') - 1 + return col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') ~= nil +end + +-- Use Tab for trigger completion with characters ahead and navigate +-- NOTE: There's always a completion item selected by default, you may want to enable +-- no select by setting `"suggest.noselect": true` in your configuration file +-- NOTE: Use command ':verbose imap ' to make sure Tab is not mapped by +-- other plugins before putting this into your config +local opts = {silent = true, noremap = true, expr = true, replace_keycodes = false} +keyset("i", "", 'coc#pum#visible() ? coc#pum#next(1) : v:lua.check_back_space() ? "" : coc#refresh()', opts) +keyset("i", "", [[coc#pum#visible() ? coc#pum#prev(1) : "\"]], opts) + +-- Make to accept selected completion item or notify coc.nvim to format +-- u breaks current undo, please make your own choice +keyset("i", "", [[coc#pum#visible() ? coc#pum#confirm() : "\u\\=coc#on_enter()\"]], opts) + +-- Use to trigger snippets +keyset("i", "", "(coc-snippets-expand-jump)") +-- Use to trigger completion +keyset("i", "", "coc#refresh()", {silent = true, expr = true}) + +-- Use `[g` and `]g` to navigate diagnostics +-- Use `:CocDiagnostics` to get all diagnostics of current buffer in location list +keyset("n", "[g", "(coc-diagnostic-prev)", {silent = true}) +keyset("n", "]g", "(coc-diagnostic-next)", {silent = true}) + +-- GoTo code navigation +keyset("n", "gd", "(coc-definition)", {silent = true}) +keyset("n", "gy", "(coc-type-definition)", {silent = true}) +keyset("n", "gi", "(coc-implementation)", {silent = true}) +keyset("n", "gr", "(coc-references)", {silent = true}) + + +-- Use K to show documentation in preview window +function _G.show_docs() + local cw = vim.fn.expand('') + if vim.fn.index({'vim', 'help'}, vim.bo.filetype) >= 0 then + vim.api.nvim_command('h ' .. cw) + elseif vim.api.nvim_eval('coc#rpc#ready()') then + vim.fn.CocActionAsync('doHover') + else + vim.api.nvim_command('!' .. vim.o.keywordprg .. ' ' .. cw) + end +end +keyset("n", "K", 'lua _G.show_docs()', {silent = true}) + + +-- Highlight the symbol and its references on a CursorHold event(cursor is idle) +vim.api.nvim_create_augroup("CocGroup", {}) +vim.api.nvim_create_autocmd("CursorHold", { + group = "CocGroup", + command = "silent call CocActionAsync('highlight')", + desc = "Highlight symbol under cursor on CursorHold" +}) + + +-- Symbol renaming +keyset("n", "rn", "(coc-rename)", {silent = true}) + + +-- Formatting selected code +keyset("x", "f", "(coc-format-selected)", {silent = true}) +keyset("n", "f", "(coc-format-selected)", {silent = true}) + + +-- Setup formatexpr specified filetype(s) +vim.api.nvim_create_autocmd("FileType", { + group = "CocGroup", + pattern = "typescript,json", + command = "setl formatexpr=CocAction('formatSelected')", + desc = "Setup formatexpr specified filetype(s)." +}) + +-- Update signature help on jump placeholder +vim.api.nvim_create_autocmd("User", { + group = "CocGroup", + pattern = "CocJumpPlaceholder", + command = "call CocActionAsync('showSignatureHelp')", + desc = "Update signature help on jump placeholder" +}) + +-- Apply codeAction to the selected region +-- Example: `aap` for current paragraph +local opts = {silent = true, nowait = true} +keyset("x", "a", "(coc-codeaction-selected)", opts) +keyset("n", "a", "(coc-codeaction-selected)", opts) + +-- Remap keys for apply code actions at the cursor position. +keyset("n", "ac", "(coc-codeaction-cursor)", opts) +-- Remap keys for apply code actions affect whole buffer. +keyset("n", "as", "(coc-codeaction-source)", opts) +-- Remap keys for applying codeActions to the current buffer +keyset("n", "ac", "(coc-codeaction)", opts) +-- Apply the most preferred quickfix action on the current line. +keyset("n", "qf", "(coc-fix-current)", opts) + +-- Remap keys for apply refactor code actions. +keyset("n", "re", "(coc-codeaction-refactor)", { silent = true }) +keyset("x", "r", "(coc-codeaction-refactor-selected)", { silent = true }) +keyset("n", "r", "(coc-codeaction-refactor-selected)", { silent = true }) + +-- Run the Code Lens actions on the current line +keyset("n", "cl", "(coc-codelens-action)", opts) + + +-- Map function and class text objects +-- NOTE: Requires 'textDocument.documentSymbol' support from the language server +keyset("x", "if", "(coc-funcobj-i)", opts) +keyset("o", "if", "(coc-funcobj-i)", opts) +keyset("x", "af", "(coc-funcobj-a)", opts) +keyset("o", "af", "(coc-funcobj-a)", opts) +keyset("x", "ic", "(coc-classobj-i)", opts) +keyset("o", "ic", "(coc-classobj-i)", opts) +keyset("x", "ac", "(coc-classobj-a)", opts) +keyset("o", "ac", "(coc-classobj-a)", opts) + + +-- Remap and to scroll float windows/popups +---@diagnostic disable-next-line: redefined-local +local opts = {silent = true, nowait = true, expr = true} +keyset("n", "", 'coc#float#has_scroll() ? coc#float#scroll(1) : ""', opts) +keyset("n", "", 'coc#float#has_scroll() ? coc#float#scroll(0) : ""', opts) +keyset("i", "", + 'coc#float#has_scroll() ? "=coc#float#scroll(1)" : ""', opts) +keyset("i", "", + 'coc#float#has_scroll() ? "=coc#float#scroll(0)" : ""', opts) +keyset("v", "", 'coc#float#has_scroll() ? coc#float#scroll(1) : ""', opts) +keyset("v", "", 'coc#float#has_scroll() ? coc#float#scroll(0) : ""', opts) + + +-- Use CTRL-S for selections ranges +-- Requires 'textDocument/selectionRange' support of language server +keyset("n", "", "(coc-range-select)", {silent = true}) +keyset("x", "", "(coc-range-select)", {silent = true}) + + +-- Add `:Format` command to format current buffer +vim.api.nvim_create_user_command("Format", "call CocAction('format')", {}) + +-- " Add `:Fold` command to fold current buffer +vim.api.nvim_create_user_command("Fold", "call CocAction('fold', )", {nargs = '?'}) + +-- Add `:OR` command for organize imports of the current buffer +vim.api.nvim_create_user_command("OR", "call CocActionAsync('runCommand', 'editor.action.organizeImport')", {}) + +-- Add (Neo)Vim's native statusline support +-- NOTE: Please see `:h coc-status` for integrations with external plugins that +-- provide custom statusline: lightline.vim, vim-airline +vim.opt.statusline:prepend("%{coc#status()}%{get(b:,'coc_current_function','')}") + +-- Mappings for CoCList +-- code actions and coc stuff +---@diagnostic disable-next-line: redefined-local +local opts = {silent = true, nowait = true} +-- Show all diagnostics +keyset("n", "a", ":CocList diagnostics", opts) +-- Manage extensions +keyset("n", "e", ":CocList extensions", opts) +-- Show commands +keyset("n", "c", ":CocList commands", opts) +-- Find symbol of current document +keyset("n", "o", ":CocList outline", opts) +-- Search workspace symbols +keyset("n", "s", ":CocList -I symbols", opts) +-- Do default action for next item +keyset("n", "j", ":CocNext", opts) +-- Do default action for previous item +keyset("n", "k", ":CocPrev", opts) +-- Resume latest coc list +keyset("n", "p", ":CocListResume", opts) +``` + +## Articles + +- [coc.nvim ๆ’ไปถไฝ“็ณปไป‹็ป](https://zhuanlan.zhihu.com/p/65524706) +- [CocList ๅ…ฅๅ‘ๆŒ‡ๅ—](https://zhuanlan.zhihu.com/p/71846145) +- [Create coc.nvim extension to improve Vim experience](https://medium.com/@chemzqm/create-coc-nvim-extension-to-improve-vim-experience-4461df269173) +- [How to write a coc.nvim extension (and why)](https://samroeca.com/coc-plugin.html) + +## Troubleshooting + +Try these steps if you experience problems with coc.nvim: + +- Ensure your Vim version >= 8.0 using `:version` +- If a service failed to start, use `:CocInfo` or `:checkhealth` if you use Neovim +- Checkout the log of coc.nvim with `:CocOpenLog` +- If you have issues with the language server, it's recommended to [checkout + the language server output](https://github.com/neoclide/coc.nvim/wiki/Debug-language-server#using-output-channel) + +## Feedback + +- Have a question? Start a discussion on [GitHub Discussions](https://github.com/neoclide/coc.nvim/discussions). +- File a bug in [GitHub Issues](https://github.com/neoclide/coc.nvim/issues). +- Chat with us on [Gitter](https://gitter.im/neoclide/coc.nvim). +- ไธญๆ–‡็”จๆˆท่ฏทๅˆฐ [ไธญๆ–‡ gitter](https://gitter.im/neoclide/coc-cn) ่ฎจ่ฎบ + +## Backers + +[Become a backer](https://opencollective.com/cocnvim#backer) and get your image on our README on GitHub with a link to your site. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Contributors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Qiming zhao
Qiming zhao

๐Ÿ’ป
Heyward Fann
Heyward Fann

๐Ÿ’ป
Raidou
Raidou

๐Ÿ’ป
kevinhwang91
kevinhwang91

๐Ÿ’ป
ๅนด็ณ•ๅฐ่ฑ†ๆฑค
ๅนด็ณ•ๅฐ่ฑ†ๆฑค

๐Ÿ’ป
Avi Dessauer
Avi Dessauer

๐Ÿ’ป
ๆœ€ไธŠๅท
ๆœ€ไธŠๅท

๐Ÿ’ป
Yatao Li
Yatao Li

๐Ÿ’ป
wongxy
wongxy

๐Ÿ’ป
Sam McCall
Sam McCall

๐Ÿ’ป
Samuel Roeca
Samuel Roeca

๐Ÿ’ป
Amirali Esmaeili
Amirali Esmaeili

๐Ÿ’ป
Jack Rowlingson
Jack Rowlingson

๐Ÿ’ป
Jaehwang Jung
Jaehwang Jung

๐Ÿ’ป
Antoine
Antoine

๐Ÿ’ป
Cosmin Popescu
Cosmin Popescu

๐Ÿ’ป
Duc Nghiem Xuan
Duc Nghiem Xuan

๐Ÿ’ป
Francisco Lopes
Francisco Lopes

๐Ÿ’ป
daquexian
daquexian

๐Ÿ’ป
dependabot[bot]
dependabot[bot]

๐Ÿ’ป
greenkeeper[bot]
greenkeeper[bot]

๐Ÿ’ป
Chris Kipp
Chris Kipp

๐Ÿ’ป
Dmytro Meleshko
Dmytro Meleshko

๐Ÿ’ป
Kirill Bobyrev
Kirill Bobyrev

๐Ÿ’ป
Gontran Baerts
Gontran Baerts

๐Ÿ’ป
Andy
Andy

๐Ÿ’ป
Cheng JIANG
Cheng JIANG

๐Ÿ’ป
Corin
Corin

๐Ÿ’ป
Daniel Zhang
Daniel Zhang

๐Ÿ’ป
Ferdinand Bachmann
Ferdinand Bachmann

๐Ÿ’ป
Guangqing Chen
Guangqing Chen

๐Ÿ’ป
Jade Meskill
Jade Meskill

๐Ÿ’ป
Jasper Poppe
Jasper Poppe

๐Ÿ’ป
Jean Jordaan
Jean Jordaan

๐Ÿ’ป
Kid
Kid

๐Ÿ’ป
Pieter van Loon
Pieter van Loon

๐Ÿ’ป
Robert Liebowitz
Robert Liebowitz

๐Ÿ’ป
Seth Messer
Seth Messer

๐Ÿ’ป
UncleBill
UncleBill

๐Ÿ’ป
ZERO
ZERO

๐Ÿ’ป
fsouza
fsouza

๐Ÿ’ป
XiaoZhang
XiaoZhang

๐Ÿ’ป
whyreal
whyreal

๐Ÿ’ป
yehuohan
yehuohan

๐Ÿ’ป
ใƒใ‚ฏใƒ€ใƒณใใ‚“
ใƒใ‚ฏใƒ€ใƒณใใ‚“

๐Ÿ’ป
Raphael
Raphael

๐Ÿ’ป
tbodt
tbodt

๐Ÿ’ป
Aaron McDaid
Aaron McDaid

๐Ÿ’ป
Aasif Versi
Aasif Versi

๐Ÿ’ป
Abner Silva
Abner Silva

๐Ÿ’ป
Adam Stankiewicz
Adam Stankiewicz

๐Ÿ’ป
Adamansky Anton
Adamansky Anton

๐Ÿ’ป
Ahmed El Gabri
Ahmed El Gabri

๐Ÿ’ป
Alexandr Kondratev
Alexandr Kondratev

๐Ÿ’ป
Andrew Shim
Andrew Shim

๐Ÿ’ป
Andy Lindeman
Andy Lindeman

๐Ÿ’ป
Augustin
Augustin

๐Ÿ’ป
Bastien Orivel
Bastien Orivel

๐Ÿ’ป
Ben Lu
Ben Lu

๐Ÿ’ป
Ben
Ben

๐Ÿ’ป
Brendan Roy
Brendan Roy

๐Ÿ’ป
brianembry
brianembry

๐Ÿ’ป
br
br

๐Ÿ’ป
Cason Adams
Cason Adams

๐Ÿ’ป
Chang Y
Chang Y

๐Ÿ’ป
Chayoung You
Chayoung You

๐Ÿ’ป
Chen Lijun
Chen Lijun

๐Ÿ’ป
Chen Mulong
Chen Mulong

๐Ÿ’ป
Chris Weyl
Chris Weyl

๐Ÿ’ป
dezza
dezza

๐Ÿ’ป
Cody Allen
Cody Allen

๐Ÿ’ป
Damien Rajon
Damien Rajon

๐Ÿ’ป
Daniel Eriksson
Daniel Eriksson

๐Ÿ’ป
Daniel Jenson
Daniel Jenson

๐Ÿ’ป
David Mejorado
David Mejorado

๐Ÿ’ป
Deric Pang
Deric Pang

๐Ÿ’ป
Ding Tao
Ding Tao

๐Ÿ’ป
Doron Behar
Doron Behar

๐Ÿ’ป
Egor Kovetskiy
Egor Kovetskiy

๐Ÿ’ป
ElKowar
ElKowar

๐Ÿ’ป
Emeliov Dmitrii
Emeliov Dmitrii

๐Ÿ’ป
Fabian Becker
Fabian Becker

๐Ÿ’ป
FallenWarrior2k
FallenWarrior2k

๐Ÿ’ป
Fausto Nรบรฑez Alberro
Fausto Nรบรฑez Alberro

๐Ÿ’ป
Felipe Ramos
Felipe Ramos

๐Ÿ’ป
Fredrik Borg
Fredrik Borg

๐Ÿ’ป
Gavin Sim
Gavin Sim

๐Ÿ’ป
Gibson Fahnestock
Gibson Fahnestock

๐Ÿ’ป
Giovanni Giordano
Giovanni Giordano

๐Ÿ’ป
Gopal Adhikari
Gopal Adhikari

๐Ÿ’ป
Hanh Le
Hanh Le

๐Ÿ’ป
hedy
hedy

๐Ÿ’ป
Hendrik Lammers
Hendrik Lammers

๐Ÿ’ป
Henry Barreto
Henry Barreto

๐Ÿ’ป
Hugo
Hugo

๐Ÿ’ป
Jackie Li
Jackie Li

๐Ÿ’ป
Jakub Nowak
Jakub Nowak

๐Ÿ’ป
James Pickard
James Pickard

๐Ÿ’ป
Jia Sui
Jia Sui

๐Ÿ’ป
Ellie Hermaszewska
Ellie Hermaszewska

๐Ÿ’ป
Joel Bradshaw
Joel Bradshaw

๐Ÿ’ป
John Carlo Roberto
John Carlo Roberto

๐Ÿ’ป
Jonas Holst Damtoft
Jonas Holst Damtoft

๐Ÿ’ป
Jonathan Lehman
Jonathan Lehman

๐Ÿ’ป
Joosep Alviste
Joosep Alviste

๐Ÿ’ป
Josa Gesell
Josa Gesell

๐Ÿ’ป
Joshua Rubin
Joshua Rubin

๐Ÿ’ป
Julian Grinblat
Julian Grinblat

๐Ÿ’ป
Julian Valentin
Julian Valentin

๐Ÿ’ป
KabbAmine
KabbAmine

๐Ÿ’ป
Kay Gosho
Kay Gosho

๐Ÿ’ป
Kenny Huynh
Kenny Huynh

๐Ÿ’ป
Kevin Rambaud
Kevin Rambaud

๐Ÿ’ป
Kian Cross
Kian Cross

๐Ÿ’ป
Kristijan Husak
Kristijan Husak

๐Ÿ’ป
NullVoxPopuli
NullVoxPopuli

๐Ÿ’ป
Lasse Peters
Lasse Peters

๐Ÿ’ป
Noel Errenil
Noel Errenil

๐Ÿ’ป
LinArcX
LinArcX

๐Ÿ’ป
Liu-Cheng Xu
Liu-Cheng Xu

๐Ÿ’ป
Marc
Marc

๐Ÿ’ป
Marius Gawrisch
Marius Gawrisch

๐Ÿ’ป
Mark Hintz
Mark Hintz

๐Ÿ’ป
Mathieu Le Tiec
Mathieu Le Tiec

๐Ÿ’ป
Matt White
Matt White

๐Ÿ’ป
Matthew Evans
Matthew Evans

๐Ÿ’ป
Me1onRind
Me1onRind

๐Ÿ’ป
Qyriad
Qyriad

๐Ÿ’ป
Narcis B.
Narcis B.

๐Ÿ’ป
Neur1n
Neur1n

๐Ÿ’ป
Nicolas Dermine
Nicolas Dermine

๐Ÿ’ป
Noah
Noah

๐Ÿ’ป
PENG Rui
PENG Rui

๐Ÿ’ป
Paco
Paco

๐Ÿ’ป
Peng Guanwen
Peng Guanwen

๐Ÿ’ป
Petter Wahlman
Petter Wahlman

๐Ÿ’ป
Pooya Moradi
Pooya Moradi

๐Ÿ’ป
Quade Morrison
Quade Morrison

๐Ÿ’ป
Ralf Vogler
Ralf Vogler

๐Ÿ’ป
Ran Chen
Ran Chen

๐Ÿ’ป
Ricardo Garcรญa Vega
Ricardo Garcรญa Vega

๐Ÿ’ป
Rick Jones
Rick Jones

๐Ÿ’ป
Ryan Christian
Ryan Christian

๐Ÿ’ป
Salo
Salo

๐Ÿ’ป
Sam Nolan
Sam Nolan

๐Ÿ’ป
Saurav
Saurav

๐Ÿ’ป
Sean Mackesey
Sean Mackesey

๐Ÿ’ป
Sheel Patel
Sheel Patel

๐Ÿ’ป
Solomon Ng
Solomon Ng

๐Ÿ’ป
Sri Kadimisetty
Sri Kadimisetty

๐Ÿ’ป
Stephen Prater
Stephen Prater

๐Ÿ’ป
Sune Kibsgaard
Sune Kibsgaard

๐Ÿ’ป
Aquaakuma
Aquaakuma

๐Ÿ’ป
Takumi Kawase
Takumi Kawase

๐Ÿ’ป
The Blob SCP
The Blob SCP

๐Ÿ’ป
Tomasz N
Tomasz N

๐Ÿ’ป
Tomoyuki Harada
Tomoyuki Harada

๐Ÿ’ป
Tony Fettes
Tony Fettes

๐Ÿ’ป
Tony Narlock
Tony Narlock

๐Ÿ’ป
Tony Wang
Tony Wang

๐Ÿ’ป
Victor Quach
Victor Quach

๐Ÿ’ป
Whisperity
Whisperity

๐Ÿ’ป
William Turner
William Turner

๐Ÿ’ป
Xiaochao Dong
Xiaochao Dong

๐Ÿ’ป
Hugh Hou
Hugh Hou

๐Ÿ’ป
Jackie Li
Jackie Li

๐Ÿ’ป
Zachary Freed
Zachary Freed

๐Ÿ’ป
akiyosi
akiyosi

๐Ÿ’ป
alexjg
alexjg

๐Ÿ’ป
aste4
aste4

๐Ÿ’ป
clyfish
clyfish

๐Ÿ’ป
dev7ba
dev7ba

๐Ÿ’ป
diartyz
diartyz

๐Ÿ’ป
doza-daniel
doza-daniel

๐Ÿ’ป
equal-l2
equal-l2

๐Ÿ’ป
fong
fong

๐Ÿ’ป
hexh
hexh

๐Ÿ’ป
hhiraba
hhiraba

๐Ÿ’ป
ic-768
ic-768

๐Ÿ’ป
javiertury
javiertury

๐Ÿ’ป
karasu
karasu

๐Ÿ’ป
kevineato
kevineato

๐Ÿ’ป
Eduardo Costa
Eduardo Costa

๐Ÿ’ป
micchy326
micchy326

๐Ÿ’ป
midchildan
midchildan

๐Ÿ’ป
minefuto
minefuto

๐Ÿ’ป
miyanokomiya
miyanokomiya

๐Ÿ’ป
miyaviee
miyaviee

๐Ÿ’ป
monkoose
monkoose

๐Ÿ’ป ๐Ÿ›
mujx
mujx

๐Ÿ’ป
mvilim
mvilim

๐Ÿ’ป
naruaway
naruaway

๐Ÿ’ป
piersy
piersy

๐Ÿ’ป
ryantig
ryantig

๐Ÿ’ป
rydesun
rydesun

๐Ÿ’ป
sc00ter
sc00ter

๐Ÿ’ป
smhc
smhc

๐Ÿ’ป
Sam Kaplan
Sam Kaplan

๐Ÿ’ป
tasuten
tasuten

๐Ÿ’ป
todesking
todesking

๐Ÿ’ป
typicode
typicode

๐Ÿ’ป
ๆŽ้ธฃ้ฃž
ๆŽ้ธฃ้ฃž

๐Ÿ’ป
Ikko Ashimine
Ikko Ashimine

๐Ÿ“–
Rammiah
Rammiah

๐Ÿ›
Alisue
Alisue

๐Ÿ›
bigshans
bigshans

๐Ÿ“–
Robert Boyd III
Robert Boyd III

๐Ÿ›
Yuki Iwanaga
Yuki Iwanaga

๐Ÿ’ป
SpringHack
SpringHack

๐Ÿ›
Lucas Burns
Lucas Burns

๐Ÿ“–
qiqiboy
qiqiboy

๐Ÿ’ป
timsu92
timsu92

๐Ÿ“–
Shawn M Moore
Shawn M Moore

๐Ÿ’ป
Aaron U'Ren
Aaron U'Ren

๐Ÿ›
SeniorMars
SeniorMars

๐Ÿ“–
็‰ง็พŠ็Šฌ็œŸQ
็‰ง็พŠ็Šฌ็œŸQ

๐Ÿ“–
geraldspreer
geraldspreer

๐Ÿ“–
Fabio
Fabio

๐Ÿ“–
Li Yunting
Li Yunting

๐Ÿ›
Jeff L.
Jeff L.

๐Ÿ’ป
Elliot Winkler
Elliot Winkler

๐Ÿ’ป
+ + + + + + + + + + + + +This project follows the [all-contributors](https://allcontributors.org) specification. +Contributions of any kind are welcome! + +## License + +[Anti 996](./LICENSE.md) diff --git a/pack/acp/opt/coc.nvim/autoload/coc.vim b/pack/acp/opt/coc.nvim/autoload/coc.vim new file mode 100644 index 0000000..56fcc0c --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc.vim @@ -0,0 +1,157 @@ +scriptencoding utf-8 +let g:coc_user_config = get(g:, 'coc_user_config', {}) +let g:coc_global_extensions = get(g:, 'coc_global_extensions', []) +let g:coc_selected_text = '' +let g:coc_vim_commands = [] +let s:watched_keys = [] +let s:is_vim = !has('nvim') +let s:utf = has('nvim') || &encoding =~# '^utf' +let s:error_sign = get(g:, 'coc_status_error_sign', has('mac') && s:utf ? "\u274c " : 'E ') +let s:warning_sign = get(g:, 'coc_status_warning_sign', has('mac') && s:utf ? "\u26a0\ufe0f " : 'W ') +let s:select_api = exists('*nvim_select_popupmenu_item') +let s:callbacks = {} +let s:hide_pum = has('nvim-0.6.1') || has('patch-8.2.3389') + +function! coc#expandable() abort + return coc#rpc#request('snippetCheck', [1, 0]) +endfunction + +function! coc#jumpable() abort + return coc#rpc#request('snippetCheck', [0, 1]) +endfunction + +function! coc#expandableOrJumpable() abort + return coc#rpc#request('snippetCheck', [1, 1]) +endfunction + +" add vim command to CocCommand list +function! coc#add_command(id, cmd, ...) + let config = {'id':a:id, 'cmd':a:cmd, 'title': get(a:,1,'')} + call add(g:coc_vim_commands, config) + if !coc#rpc#ready() | return | endif + call coc#rpc#notify('addCommand', [config]) +endfunction + +function! coc#on_enter() + call coc#rpc#notify('CocAutocmd', ['Enter', bufnr('%')]) + return '' +endfunction + +function! coc#_insert_key(method, key, ...) abort + let prefix = '' + if get(a:, 1, 1) + if coc#pum#visible() + let prefix = "\=coc#pum#close()\" + elseif pumvisible() && s:hide_pum + let prefix = "\\" + endif + endif + return prefix."\=coc#rpc#".a:method."('doKeymap', ['".a:key."'])\" +endfunction + +" used for statusline +function! coc#status(...) + let info = get(b:, 'coc_diagnostic_info', {}) + let msgs = [] + if !empty(info) && get(info, 'error', 0) + call add(msgs, s:error_sign . info['error']) + endif + if !empty(info) && get(info, 'warning', 0) + call add(msgs, s:warning_sign . info['warning']) + endif + let status = get(g:, 'coc_status', '') + if get(a:, 1, 0) + let status = substitute(status, '%', '%%', 'g') + endif + return coc#compat#trim(join(msgs, ' ') . ' ' . status) +endfunction + +function! coc#config(section, value) + let g:coc_user_config[a:section] = a:value + call coc#rpc#notify('updateConfig', [a:section, a:value]) +endfunction + +" Deprecated, use variable instead. +function! coc#add_extension(...) + if a:0 == 0 | return | endif + call extend(g:coc_global_extensions, a:000) +endfunction + +function! coc#_watch(key) + if s:is_vim | return | endif + if index(s:watched_keys, a:key) == -1 + call add(s:watched_keys, a:key) + call dictwatcheradd(g:, a:key, function('s:GlobalChange')) + endif +endfunction + +function! coc#_unwatch(key) + if s:is_vim | return | endif + let idx = index(s:watched_keys, a:key) + if idx != -1 + call remove(s:watched_keys, idx) + call dictwatcherdel(g:, a:key, function('s:GlobalChange')) + endif +endfunction + +function! s:GlobalChange(dict, key, val) + call coc#rpc#notify('GlobalChange', [a:key, get(a:val, 'old', v:null), get(a:val, 'new', v:null)]) +endfunction + +function! coc#on_notify(id, method, Cb) + let key = a:id. '-'.a:method + let s:callbacks[key] = a:Cb + call coc#rpc#notify('registerNotification', [a:id, a:method]) +endfunction + +function! coc#do_notify(id, method, result) + let key = a:id. '-'.a:method + let Fn = s:callbacks[key] + if !empty(Fn) + call Fn(a:result) + endif +endfunction + +function! coc#start(...) + call CocActionAsync('startCompletion', get(a:, 1, {})) + return '' +endfunction + +" Could be used by coc extensions +function! coc#_cancel(...) + call coc#pum#close() +endfunction + +function! coc#refresh() abort + return "\=coc#start()\" +endfunction + +function! coc#_select_confirm() abort + return "\=coc#pum#select_confirm()\" +endfunction + +function! coc#_suggest_variables() abort + return { + \ 'disable': get(b:, 'coc_suggest_disable', 0), + \ 'disabled_sources': get(b:, 'coc_disabled_sources', []), + \ 'blacklist': get(b:, 'coc_suggest_blacklist', []), + \ } +endfunction + +function! coc#_remote_fns(name) + let fns = ['init', 'complete', 'should_complete', 'refresh', 'get_startcol', 'on_complete', 'on_enter'] + let res = [] + for fn in fns + if exists('*coc#source#'.a:name.'#'.fn) + call add(res, fn) + endif + endfor + return res +endfunction + +function! coc#_do_complete(name, opt, cb) abort + let handler = 'coc#source#'.a:name.'#complete' + let l:Cb = {res -> a:cb(v:null, res)} + let args = [a:opt, l:Cb] + call call(handler, args) +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/api.vim b/pack/acp/opt/coc.nvim/autoload/coc/api.vim new file mode 100644 index 0000000..429e0db --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/api.vim @@ -0,0 +1,898 @@ +" ============================================================================ +" Description: Client api used by vim8 +" Author: Qiming Zhao +" Licence: Anti 996 licence +" Last Modified: 2022-12-20 +" ============================================================================ +if has('nvim') + finish +endif + +scriptencoding utf-8 +let s:funcs = {} +let s:prop_offset = get(g:, 'coc_text_prop_offset', 1000) +let s:namespace_id = 1 +let s:namespace_cache = {} +let s:max_src_id = 1000 +" bufnr => max textprop id +let s:buffer_id = {} +" srcId => list of types +let s:id_types = {} +let s:tab_id = 1 +let s:keymap_arguments = ['nowait', 'silent', 'script', 'expr', 'unique'] + +" helper {{ +" Create a window with bufnr for execute win_execute +function! s:create_popup(bufnr) abort + noa let id = popup_create(1, { + \ 'line': 1, + \ 'col': &columns, + \ 'maxwidth': 1, + \ 'maxheight': 1, + \ }) + call popup_hide(id) + return id +endfunction + +function! s:check_bufnr(bufnr) abort + if !bufloaded(a:bufnr) + throw 'Invalid buffer id: '.a:bufnr + endif +endfunction + +" TextChanged not fired when using channel on vim. +function! s:on_textchange(bufnr) abort + let event = mode() ==# 'i' ? 'TextChangedI' : 'TextChanged' + exe 'doautocmd '.event.' '.bufname(a:bufnr) +endfunction + +" execute command for bufnr +function! s:buf_execute(bufnr, cmds) abort + call s:check_bufnr(a:bufnr) + let winid = get(win_findbuf(a:bufnr), 0, -1) + let close = 0 + if winid == -1 + let winid = s:create_popup(a:bufnr) + let close = 1 + endif + for cmd in a:cmds + call win_execute(winid, cmd, 'silent') + endfor + if close + noa call popup_close(winid) + endif +endfunction + +function! s:check_winid(winid) abort + if empty(getwininfo(a:winid)) && empty(popup_getpos(a:winid)) + throw 'Invalid window id: '.a:winid + endif +endfunction + +function! s:is_popup(winid) abort + try + return !empty(popup_getpos(a:winid)) + catch /^Vim\%((\a\+)\)\=:E993/ + return 0 + endtry +endfunction + +function! s:tabid_nr(tid) abort + for nr in range(1, tabpagenr('$')) + if gettabvar(nr, '__tid', v:null) is a:tid + return nr + endif + endfor + throw 'Invalid tabpage id: '.a:tid +endfunction + +function! s:tabnr_id(nr) abort + let tid = gettabvar(a:nr, '__tid', -1) + if tid == -1 + let tid = s:tab_id + call settabvar(a:nr, '__tid', tid) + let s:tab_id = s:tab_id + 1 + endif + return tid +endfunction + +function! s:generate_id(bufnr) abort + let max = get(s:buffer_id, a:bufnr, s:prop_offset) + let id = max + 1 + let s:buffer_id[a:bufnr] = id + return id +endfunction + +function! s:win_execute(winid, cmd, ...) abort + let ref = get(a:000, 0, v:null) + let cmd = ref is v:null ? a:cmd : 'let ref["out"] = ' . a:cmd + call win_execute(a:winid, cmd) +endfunction + +function! s:win_tabnr(winid) abort + let ref = {} + call win_execute(a:winid, 'let ref["out"] = tabpagenr()') + let tabnr = get(ref, 'out', -1) + if tabnr == -1 + throw 'Invalid window id: '.a:winid + endif + return tabnr +endfunction + +function! s:buf_line_count(bufnr) abort + if bufnr('%') == a:bufnr + return line('$') + endif + if exists('*getbufinfo') + let info = getbufinfo(a:bufnr) + if empty(info) + return 0 + endif + " vim 8.1 has getbufinfo but no linecount + if has_key(info[0], 'linecount') + return info[0]['linecount'] + endif + endif + return len(getbufline(a:bufnr, 1, '$')) +endfunction + +function! s:execute(cmd) + if a:cmd =~# '^echo' + execute a:cmd + else + silent! execute a:cmd + endif +endfunction + +function s:inspect_type(v) abort + let types = ['Number', 'String', 'Funcref', 'List', 'Dictionary', 'Float', 'Boolean', 'Null'] + return get(types, type(a:v), 'Unknown') +endfunction + +function! s:escape_space(text) abort + return substitute(a:text, ' ', '', 'g') +endfunction + +function! s:create_mode_prefix(mode, opts) abort + if a:mode ==# '!' + return 'map!' + endif + return get(a:opts, 'noremap', 0) ? a:mode . 'noremap' : a:mode . 'map' +endfunction + +function! s:create_arguments(opts) abort + let arguments = '' + for key in keys(a:opts) + if a:opts[key] && index(s:keymap_arguments, key) != -1 + let arguments .= '<'.key.'>' + endif + endfor + return arguments +endfunction +" }}" + +" nvim client methods {{ +function! s:funcs.set_current_dir(dir) abort + execute 'cd '.fnameescape(a:dir) + return v:null +endfunction + +function! s:funcs.set_var(name, value) abort + execute 'let g:'.a:name.'= a:value' + return v:null +endfunction + +function! s:funcs.del_var(name) abort + if !has_key(g:, a:name) + throw 'Key not found: '.a:name + endif + execute 'unlet g:'.a:name + return v:null +endfunction + +function! s:funcs.set_option(name, value) abort + execute 'let &'.a:name.' = a:value' + return v:null +endfunction + +function! s:funcs.get_option(name) + return eval('&'.a:name) +endfunction + +function! s:funcs.set_current_buf(bufnr) abort + call s:check_bufnr(a:bufnr) + execute 'buffer '.a:bufnr + return v:null +endfunction + +function! s:funcs.set_current_win(winid) abort + call s:win_tabnr(a:winid) + call win_gotoid(a:winid) + return v:null +endfunction + +function! s:funcs.set_current_tabpage(tid) abort + let nr = s:tabid_nr(a:tid) + execute 'normal! '.nr.'gt' + return v:null +endfunction + +function! s:funcs.list_wins() abort + return map(getwininfo(), 'v:val["winid"]') +endfunction + +function! s:funcs.call_atomic(calls) + let results = [] + for i in range(len(a:calls)) + let [key, arglist] = a:calls[i] + let name = key[5:] + try + call add(results, call(s:funcs[name], arglist)) + catch /.*/ + return [results, [i, "VimException(".s:inspect_type(v:exception).")", v:exception . ' on function "'.name.'"']] + endtry + endfor + return [results, v:null] +endfunction + +function! s:funcs.set_client_info(...) abort + " not supported + return v:null +endfunction + +function! s:funcs.subscribe(...) abort + " not supported + return v:null +endfunction + +function! s:funcs.unsubscribe(...) abort + " not supported + return v:null +endfunction + +function! s:funcs.call_function(method, args) abort + return call(a:method, a:args) +endfunction + +function! s:funcs.call_dict_function(dict, method, args) abort + if type(a:dict) == v:t_string + return call(a:method, a:args, eval(a:dict)) + endif + return call(a:method, a:args, a:dict) +endfunction + +function! s:funcs.command(command) abort + " command that could cause cursor vanish + if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place' + call timer_start(0, {-> s:execute(a:command)}) + else + execute a:command + let err = get(g:, 'errmsg', '') + " get error from python script run. + if !empty(err) + unlet g:errmsg + throw err + endif + endif +endfunction + +function! s:funcs.eval(expr) abort + return eval(a:expr) +endfunction + +function! s:funcs.get_api_info() + let names = coc#api#func_names() + let channel = coc#rpc#get_channel() + if empty(channel) + throw 'Unable to get channel' + endif + return [ch_info(channel)['id'], {'functions': map(names, '{"name": "nvim_".v:val}')}] +endfunction + +function! s:funcs.list_bufs() + return map(getbufinfo(), 'v:val["bufnr"]') +endfunction + +function! s:funcs.feedkeys(keys, mode, escape_csi) + call feedkeys(a:keys, a:mode) + return v:null +endfunction + +function! s:funcs.list_runtime_paths() + return globpath(&runtimepath, '', 0, 1) +endfunction + +function! s:funcs.command_output(cmd) + return execute(a:cmd) +endfunction + +function! s:funcs.exec(code, output) abort + let cmds = split(a:code, '\n') + if a:output + return substitute(execute(cmds, 'silent!'), '^\n', '', '') + endif + call execute(cmds) + return v:null +endfunction + +" Queues raw user-input, <" is special. To input a literal "<", send . +function! s:funcs.input(keys) abort + let escaped = substitute(a:keys, '<', '\\<', 'g') + call feedkeys(eval('"'.escaped.'"'), 't') + return v:null +endfunction + +function! s:funcs.create_buf(listed, scratch) abort + let bufnr = bufadd('') + call setbufvar(bufnr, '&buflisted', a:listed ? 1 : 0) + if a:scratch + call setbufvar(bufnr, '&modeline', 0) + call setbufvar(bufnr, '&buftype', 'nofile') + call setbufvar(bufnr, '&swapfile', 0) + endif + call bufload(bufnr) + return bufnr +endfunction + +function! s:funcs.get_current_line() + return getline('.') +endfunction + +function! s:funcs.set_current_line(line) + call setline('.', a:line) + call s:on_textchange(bufnr('%')) + return v:null +endfunction + +function! s:funcs.del_current_line() + call deletebufline('%', line('.')) + call s:on_textchange(bufnr('%')) + return v:null +endfunction + +function! s:funcs.get_var(var) + return get(g:, a:var, v:null) +endfunction + +function! s:funcs.get_vvar(var) + return get(v:, a:var, v:null) +endfunction + +function! s:funcs.get_current_buf() + return bufnr('%') +endfunction + +function! s:funcs.get_current_win() + return win_getid() +endfunction + +function! s:funcs.get_current_tabpage() + return s:tabnr_id(tabpagenr()) +endfunction + +function! s:funcs.list_tabpages() + let ids = [] + for nr in range(1, tabpagenr('$')) + call add(ids, s:tabnr_id(nr)) + endfor + return ids +endfunction + +function! s:funcs.get_mode() + let m = mode() + return {'blocking': m ==# 'r' ? v:true : v:false, 'mode': m} +endfunction + +function! s:funcs.strwidth(str) + return strwidth(a:str) +endfunction + +function! s:funcs.out_write(str) + echon a:str + call timer_start(0, {-> s:execute('redraw')}) +endfunction + +function! s:funcs.err_write(str) + "echoerr a:str +endfunction + +function! s:funcs.err_writeln(str) + echohl ErrorMsg + echom a:str + echohl None + call timer_start(0, {-> s:execute('redraw')}) +endfunction + +function! s:funcs.create_namespace(name) abort + if empty(a:name) + let id = s:namespace_id + let s:namespace_id = s:namespace_id + 1 + return id + endif + let id = get(s:namespace_cache, a:name, 0) + if !id + let id = s:namespace_id + let s:namespace_id = s:namespace_id + 1 + let s:namespace_cache[a:name] = id + endif + return id +endfunction + +function! s:funcs.set_keymap(mode, lhs, rhs, opts) abort + let modekey = s:create_mode_prefix(a:mode, a:opts) + let arguments = s:create_arguments(a:opts) + let lhs = s:escape_space(a:lhs) + let rhs = empty(a:rhs) ? '' : s:escape_space(a:rhs) + let cmd = modekey . ' ' . arguments .' '.lhs. ' '.rhs + execute cmd + return v:null +endfunction + +function! s:funcs.del_keymap(mode, lhs) abort + let lhs = substitute(a:lhs, ' ', '', 'g') + execute 'silent '.a:mode.'unmap '.lhs + return v:null +endfunction +" }} + +" buffer methods {{ +function! s:funcs.buf_set_option(bufnr, name, val) + let val = a:val + if val is v:true + let val = 1 + elseif val is v:false + let val = 0 + endif + call setbufvar(a:bufnr, '&'.a:name, val) + return v:null +endfunction + +function! s:funcs.buf_get_option(bufnr, name) + call s:check_bufnr(a:bufnr) + return getbufvar(a:bufnr, '&'.a:name) +endfunction + +function! s:funcs.buf_get_changedtick(bufnr) + return getbufvar(a:bufnr, 'changedtick') +endfunction + +function! s:funcs.buf_is_valid(bufnr) + return bufexists(a:bufnr) ? v:true : v:false +endfunction + +function! s:funcs.buf_is_loaded(bufnr) + return bufloaded(a:bufnr) ? v:true : v:false +endfunction + +function! s:funcs.buf_get_mark(bufnr, name) + if a:bufnr != 0 && a:bufnr != bufnr('%') + throw 'buf_get_mark support current buffer only' + endif + return [line("'" . a:name), col("'" . a:name) - 1] +endfunction + +function! s:funcs.buf_add_highlight(bufnr, srcId, hlGroup, line, colStart, colEnd, ...) abort + if a:srcId == 0 + let srcId = s:max_src_id + 1 + let s:max_src_id = srcId + else + let srcId = a:srcId + endif + let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr + let type = srcId == -1 ? a:hlGroup : a:hlGroup.'_'.srcId + let types = get(s:id_types, srcId, []) + if index(types, type) == -1 + call add(types, type) + let s:id_types[srcId] = types + if empty(prop_type_get(type)) + call prop_type_add(type, extend({'highlight': a:hlGroup}, get(a:, 1, {}))) + endif + endif + let end = a:colEnd == -1 ? strlen(get(getbufline(bufnr, a:line + 1), 0, '')) + 1 : a:colEnd + 1 + if end < a:colStart + 1 + return + endif + let id = s:generate_id(a:bufnr) + try + call prop_add(a:line + 1, a:colStart + 1, {'bufnr': bufnr, 'type': type, 'id': id, 'end_col': end}) + catch /^Vim\%((\a\+)\)\=:E967/ + " ignore 967 + endtry + if a:srcId == 0 + " return generated srcId + return srcId + endif + return v:null +endfunction + +function! s:funcs.buf_clear_namespace(bufnr, srcId, startLine, endLine) abort + let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr + let start = a:startLine + 1 + let end = a:endLine == -1 ? len(getbufline(bufnr, 1, '$')) : a:endLine + if a:srcId == -1 + if has_key(s:buffer_id, a:bufnr) + unlet s:buffer_id[a:bufnr] + endif + call prop_clear(start, end, {'bufnr' : bufnr}) + else + for type in get(s:id_types, a:srcId, []) + try + call prop_remove({'bufnr': bufnr, 'all': 1, 'type': type}, start, end) + catch /^Vim\%((\a\+)\)\=:E968/ + " ignore 968 + endtry + endfor + endif + return v:null +endfunction + +function! s:funcs.buf_line_count(bufnr) abort + call s:check_bufnr(a:bufnr) + return s:buf_line_count(a:bufnr) +endfunction + +function! s:funcs.buf_attach(...) + " not supported + return 1 +endfunction + +function! s:funcs.buf_detach() + " not supported + return 1 +endfunction + +function! s:funcs.buf_get_lines(bufnr, start, end, strict) abort + call s:check_bufnr(a:bufnr) + let len = s:buf_line_count(a:bufnr) + let start = a:start < 0 ? len + a:start + 2 : a:start + 1 + let end = a:end < 0 ? len + a:end + 1 : a:end + if a:strict && end > len + throw 'Index out of bounds '. end + endif + return getbufline(a:bufnr, start, end) +endfunction + +function! s:funcs.buf_set_lines(bufnr, start, end, strict, ...) abort + call s:check_bufnr(a:bufnr) + let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr + let len = s:buf_line_count(bufnr) + let startLnum = a:start < 0 ? len + a:start + 2 : a:start + 1 + let endLnum = a:end < 0 ? len + a:end + 1 : a:end + if endLnum > len + if a:strict + throw 'Index out of bounds '. end + else + let endLnum = len + endif + endif + let delCount = endLnum - (startLnum - 1) + let view = bufnr == bufnr('%') ? winsaveview() : v:null + let replacement = get(a:, 1, []) + if delCount == len(replacement) + call setbufline(bufnr, startLnum, replacement) + else + if len(replacement) + call appendbufline(bufnr, startLnum - 1, replacement) + endif + if delCount + let start = startLnum + len(replacement) + silent call deletebufline(bufnr, start, start + delCount - 1) + endif + endif + if view isnot v:null + call winrestview(view) + endif + call s:on_textchange(a:bufnr) + return v:null +endfunction + +function! s:funcs.buf_set_name(bufnr, name) abort + call s:check_bufnr(a:bufnr) + call s:buf_execute(a:bufnr, [ + \ 'noa 0f', + \ 'file '.fnameescape(a:name) + \ ]) + return v:null +endfunction + +function! s:funcs.buf_get_name(bufnr) + call s:check_bufnr(a:bufnr) + return bufname(a:bufnr) +endfunction + +function! s:funcs.buf_get_var(bufnr, name) + call s:check_bufnr(a:bufnr) + if !has_key(b:, a:name) + throw 'Key not found: '.a:name + endif + return getbufvar(a:bufnr, a:name) +endfunction + +function! s:funcs.buf_set_var(bufnr, name, val) + call s:check_bufnr(a:bufnr) + call setbufvar(a:bufnr, a:name, a:val) + return v:null +endfunction + +function! s:funcs.buf_del_var(bufnr, name) + call s:check_bufnr(a:bufnr) + if a:bufnr == bufnr('%') + execute 'unlet! b:'.a:name + else + call s:buf_execute(a:bufnr, ['unlet! b:'.a:name]) + endif + return v:null +endfunction + +function! s:funcs.buf_set_keymap(bufnr, mode, lhs, rhs, opts) abort + let modekey = s:create_mode_prefix(a:mode, a:opts) + let arguments = s:create_arguments(a:opts) + let lhs = s:escape_space(a:lhs) + let rhs = empty(a:rhs) ? '' : s:escape_space(a:rhs) + let cmd = modekey . ' ' . arguments .' '.lhs. ' '.rhs + if bufnr('%') == a:bufnr || a:bufnr == 0 + execute cmd + else + call s:buf_execute(a:bufnr, [cmd]) + endif + return v:null +endfunction + +function! s:funcs.buf_del_keymap(bufnr, mode, lhs) abort + let lhs = substitute(a:lhs, ' ', '', 'g') + let cmd = 'silent '.a:mode.'unmap '.lhs + if bufnr('%') == a:bufnr || a:bufnr == 0 + execute cmd + else + call s:buf_execute(a:bufnr, [cmd]) + endif + return v:null +endfunction +" }} + +" window methods {{ +function! s:funcs.win_get_buf(winid) + call s:check_winid(a:winid) + return winbufnr(a:winid) +endfunction + +function! s:funcs.win_set_buf(winid, bufnr) abort + call s:check_winid(a:winid) + call s:check_bufnr(a:bufnr) + call s:win_execute(a:winid, 'buffer '.a:bufnr) + return v:null +endfunction + +function! s:funcs.win_get_position(winid) abort + let [row, col] = win_screenpos(a:winid) + if row == 0 && col == 0 + throw 'Invalid window '.a:winid + endif + return [row - 1, col - 1] +endfunction + +function! s:funcs.win_set_height(winid, height) abort + call s:check_winid(a:winid) + if s:is_popup(a:winid) + call popup_move(a:winid, {'maxheight': a:height, 'minheight': a:height}) + else + call s:win_execute(a:winid, 'resize '.a:height) + endif + return v:null +endfunction + +function! s:funcs.win_get_height(winid) abort + call s:check_winid(a:winid) + if s:is_popup(a:winid) + return popup_getpos(a:winid)['height'] + endif + return winheight(a:winid) +endfunction + +function! s:funcs.win_set_width(winid, width) abort + call s:check_winid(a:winid) + if s:is_popup(a:winid) + call popup_move(a:winid, {'maxwidth': a:width, 'minwidth': a:width}) + else + call s:win_execute(a:winid, 'vertical resize '.a:width) + endif + return v:null +endfunction + +function! s:funcs.win_get_width(winid) abort + call s:check_winid(a:winid) + if s:is_popup(a:winid) + return popup_getpos(a:winid)['width'] + endif + return winwidth(a:winid) +endfunction + +function! s:funcs.win_set_cursor(winid, pos) abort + call s:check_winid(a:winid) + let [line, col] = a:pos + call s:win_execute(a:winid, 'call cursor('.line.','.(col + 1).')') + return v:null +endfunction + +function! s:funcs.win_get_cursor(winid) abort + call s:check_winid(a:winid) + let ref = {} + call s:win_execute(a:winid, "[line('.'), col('.')-1]", ref) + return get(ref, 'out', [1, 0]) +endfunction + +function! s:funcs.win_set_option(winid, name, value) abort + let tabnr = s:win_tabnr(a:winid) + let val = a:value + if val is v:true + let val = 1 + elseif val is v:false + let val = 0 + endif + call settabwinvar(tabnr, a:winid, '&'.a:name, val) + return v:null +endfunction + +function! s:funcs.win_get_option(winid, name, ...) abort + let tabnr = s:win_tabnr(a:winid) + let result = gettabwinvar(tabnr, a:winid, '&'.a:name, get(a:, 1, v:null)) + if result is v:null + throw "Invalid option name: '".a:name."'" + endif + return result +endfunction + +function! s:funcs.win_get_var(winid, name, ...) abort + let tabnr = s:win_tabnr(a:winid) + return gettabwinvar(tabnr, a:winid, a:name, get(a:, 1, v:null)) +endfunction + +function! s:funcs.win_set_var(winid, name, value) abort + let tabnr = s:win_tabnr(a:winid) + call settabwinvar(tabnr, a:winid, a:name, a:value) + return v:null +endfunction + +function! s:funcs.win_del_var(winid, name) abort + call s:check_winid(a:winid) + call win_execute(a:winid, 'unlet! w:'.a:name) + return v:null +endfunction + +function! s:funcs.win_is_valid(winid) abort + let invalid = empty(getwininfo(a:winid)) && empty(popup_getpos(a:winid)) + return invalid ? v:false : v:true +endfunction + +" Not work for popup +function! s:funcs.win_get_number(winid) abort + if s:is_popup(a:winid) + return 0 + endif + let info = getwininfo(a:winid) + if empty(info) + throw 'Invalid window id '.a:winid + endif + return info[0]['winnr'] +endfunction + +function! s:funcs.win_get_tabpage(winid) abort + let nr = s:win_tabnr(a:winid) + return s:tabnr_id(nr) +endfunction + +function! s:funcs.win_close(winid, ...) abort + call s:check_winid(a:winid) + let force = get(a:, 1, 0) + if s:is_popup(a:winid) + call popup_close(a:winid) + else + call s:win_execute(a:winid, 'close'.(force ? '!' : '')) + endif + return v:null +endfunction +" }} + +" tabpage methods {{ +function! s:funcs.tabpage_get_number(tid) + return s:tabid_nr(a:tid) +endfunction + +function! s:funcs.tabpage_list_wins(tid) + let nr = s:tabid_nr(a:tid) + return gettabinfo(nr)[0]['windows'] +endfunction + +function! s:funcs.tabpage_get_var(tid, name) + let nr = s:tabid_nr(a:tid) + return gettabvar(nr, a:name, v:null) +endfunction + +function! s:funcs.tabpage_set_var(tid, name, value) + let nr = s:tabid_nr(a:tid) + call settabvar(nr, a:name, a:value) + return v:null +endfunction + +function! s:funcs.tabpage_del_var(tid, name) + let nr = s:tabid_nr(a:tid) + call settabvar(nr, a:name, v:null) + return v:null +endfunction + +function! s:funcs.tabpage_is_valid(tid) + for nr in range(1, tabpagenr('$')) + if gettabvar(nr, '__tid', -1) == a:tid + return v:true + endif + endfor + return v:false +endfunction + +function! s:funcs.tabpage_get_win(tid) + let nr = s:tabid_nr(a:tid) + return win_getid(tabpagewinnr(nr), nr) +endfunction +" }} + +function! coc#api#get_types(srcId) abort + return get(s:id_types, a:srcId, []) +endfunction + +function! coc#api#get_id_types() abort + return s:id_types +endfunction + +function! coc#api#create_type(srcId, hlGroup, opts) abort + let type = a:hlGroup.'_'.a:srcId + let types = get(s:id_types, a:srcId, []) + if index(types, type) == -1 + call add(types, type) + let s:id_types[a:srcId] = types + let combine = get(a:opts, 'hl_mode', 'combine') ==# 'combine' + call prop_type_add(type, {'highlight': a:hlGroup, 'combine': combine}) + endif + return type +endfunction + +function! coc#api#func_names() abort + return keys(s:funcs) +endfunction + +function! coc#api#call(method, args) abort + let err = v:null + let res = v:null + try + let res = call(s:funcs[a:method], a:args) + catch /.*/ + let err = v:exception .' on api "'.a:method.'" '.json_encode(a:args) + endtry + return [err, res] +endfunction + +function! coc#api#exec(method, args) abort + return call(s:funcs[a:method], a:args) +endfunction + +function! coc#api#notify(method, args) abort + try + call call(s:funcs[a:method], a:args) + catch /.*/ + call coc#rpc#notify('nvim_error_event', [0, v:exception.' on api "'.a:method.'" '.json_encode(a:args)]) + endtry +endfunction + +" create id for all tabpages +function! coc#api#tabpage_ids() abort + for nr in range(1, tabpagenr('$')) + if gettabvar(nr, '__tid', -1) == -1 + call settabvar(nr, '__tid', s:tab_id) + let s:tab_id = s:tab_id + 1 + endif + endfor +endfunction + +function! coc#api#get_tabid(nr) abort + return s:tabnr_id(a:nr) +endfunction +" vim: set sw=2 ts=2 sts=2 et tw=78 foldmarker={{,}} foldmethod=marker foldlevel=0: diff --git a/pack/acp/opt/coc.nvim/autoload/coc/client.vim b/pack/acp/opt/coc.nvim/autoload/coc/client.vim new file mode 100644 index 0000000..0a8023c --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/client.vim @@ -0,0 +1,386 @@ +scriptencoding utf-8 +let s:root = expand(':h:h:h') +let s:is_vim = !has('nvim') +let s:is_win = has("win32") || has("win64") +let s:clients = {} + +if get(g:, 'node_client_debug', 0) + echohl WarningMsg | echo '[coc.nvim] Enable g:node_client_debug could impact your vim experience' | echohl None + let $NODE_CLIENT_LOG_LEVEL = 'debug' + if exists('$NODE_CLIENT_LOG_FILE') + let s:logfile = resolve($NODE_CLIENT_LOG_FILE) + else + let s:logfile = tempname() + let $NODE_CLIENT_LOG_FILE = s:logfile + endif +endif + +" create a client +function! coc#client#create(name, command) + let client = {} + let client['command'] = a:command + let client['name'] = a:name + let client['running'] = 0 + let client['async_req_id'] = 1 + let client['async_callbacks'] = {} + " vim only + let client['channel'] = v:null + " neovim only + let client['chan_id'] = 0 + let client['start'] = function('s:start', [], client) + let client['request'] = function('s:request', [], client) + let client['notify'] = function('s:notify', [], client) + let client['request_async'] = function('s:request_async', [], client) + let client['on_async_response'] = function('s:on_async_response', [], client) + let s:clients[a:name] = client + return client +endfunction + +function! s:start() dict + if self.running | return | endif + if !isdirectory(getcwd()) + echoerr '[coc.nvim] Current cwd is not a valid directory.' + return + endif + let tmpdir = fnamemodify(tempname(), ':p:h') + if s:is_vim + if get(g:, 'node_client_debug', 0) + let file = tmpdir . '/coc.log' + call ch_logfile(file, 'w') + echohl MoreMsg | echo '[coc.nvim] channel log to '.file | echohl None + endif + let options = { + \ 'in_mode': 'json', + \ 'out_mode': 'json', + \ 'err_mode': 'nl', + \ 'err_cb': {channel, message -> s:on_stderr(self.name, split(message, "\n"))}, + \ 'exit_cb': {channel, code -> s:on_exit(self.name, code)}, + \ 'env': { + \ 'NODE_NO_WARNINGS': '1', + \ 'VIM_NODE_RPC': '1', + \ 'TMPDIR': tmpdir, + \ } + \} + if has("patch-8.1.350") + let options['noblock'] = 1 + endif + let job = job_start(self.command, options) + let status = job_status(job) + if status !=# 'run' + let self.running = 0 + echohl Error | echom 'Failed to start '.self.name.' service' | echohl None + return + endif + let self['running'] = 1 + let self['channel'] = job_getchannel(job) + else + let original = {} + let opts = { + \ 'rpc': 1, + \ 'on_stderr': {channel, msgs -> s:on_stderr(self.name, msgs)}, + \ 'on_exit': {channel, code -> s:on_exit(self.name, code)}, + \ } + if has('nvim-0.5.0') + " could use env option + let opts['env'] = { + \ 'NODE_NO_WARNINGS': '1', + \ 'TMPDIR': tmpdir + \ } + else + let original = { + \ 'NODE_NO_WARNINGS': getenv('NODE_NO_WARNINGS'), + \ 'TMPDIR': getenv('TMPDIR'), + \ } + call setenv('NODE_NO_WARNINGS', '1') + call setenv('TMPDIR', tmpdir) + endif + let chan_id = jobstart(self.command, opts) + if !empty(original) + for key in keys(original) + call setenv(key, original[key]) + endfor + endif + if chan_id <= 0 + echohl Error | echom 'Failed to start '.self.name.' service' | echohl None + return + endif + let self['chan_id'] = chan_id + let self['running'] = 1 + endif +endfunction + +function! s:on_stderr(name, msgs) + if get(g:, 'coc_vim_leaving', 0) | return | endif + let data = filter(copy(a:msgs), '!empty(v:val)') + if empty(data) | return | endif + let client = a:name ==# 'coc' ? '[coc.nvim]' : '['.a:name.']' + let data[0] = client.': '.data[0] + if a:name ==# 'coc' && len(filter(copy(data), 'v:val =~# "SyntaxError: "')) + call coc#client#check_version() + return + endif + if get(g:, 'coc_disable_uncaught_error', 0) | return | endif + call s:on_error(a:name, data) +endfunction + +function! coc#client#check_version() abort + if (has_key(g:, 'coc_node_path')) + let node = expand(g:coc_node_path) + else + let node = $COC_NODE_PATH == '' ? 'node' : $COC_NODE_PATH + endif + let cmd = node . ' --version' + let output = system(cmd) + let msgs = [] + if v:shell_error + let msgs = ['Unexpected result from "'.cmd.'"'] + split(output, '\n') + else + let ms = matchlist(output, 'v\(\d\+\).\(\d\+\).\(\d\+\)') + if empty(ms) + let msgs = ['Unable to get node version by "'.cmd.'" please install NodeJS from https://nodejs.org/en/download/'] + elseif str2nr(ms[1]) < 14 || (str2nr(ms[1]) == 14 && str2nr(ms[2]) < 14) + let msgs = ['Current Node.js version '.trim(output).' < 14.14.0 ', 'Please upgrade your .js'] + endif + endif + if !empty(msgs) + call s:on_error('coc', msgs) + endif +endfunction + +function! s:on_exit(name, code) abort + if get(g:, 'coc_vim_leaving', 0) | return | endif + let client = get(s:clients, a:name, v:null) + if empty(client) | return | endif + if client['running'] != 1 | return | endif + let client['running'] = 0 + let client['chan_id'] = 0 + let client['channel'] = v:null + let client['async_req_id'] = 1 + if a:code != 0 && a:code != 143 + echohl Error | echom 'client '.a:name. ' abnormal exit with: '.a:code | echohl None + endif +endfunction + +function! coc#client#get_client(name) abort + return get(s:clients, a:name, v:null) +endfunction + +function! coc#client#get_channel(client) + if s:is_vim + return a:client['channel'] + endif + return a:client['chan_id'] +endfunction + +function! s:request(method, args) dict + let channel = coc#client#get_channel(self) + if empty(channel) | return '' | endif + try + if s:is_vim + let res = ch_evalexpr(channel, [a:method, a:args], {'timeout': 60 * 1000}) + if type(res) == 1 && res ==# '' + throw 'request '.a:method. ' '.string(a:args).' timeout after 60s' + endif + let [l:errmsg, res] = res + if !empty(l:errmsg) + throw 'Error on "'.a:method.'" request: '.l:errmsg + else + return res + endif + else + return call('rpcrequest', [channel, a:method] + a:args) + endif + catch /.*/ + if v:exception =~# 'E475' + if get(g:, 'coc_vim_leaving', 0) | return | endif + echohl Error | echom '['.self.name.'] server connection lost' | echohl None + let name = self.name + call s:on_exit(name, 0) + execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:] + elseif v:exception =~# 'E12' + " neovim's bug, ignore it + else + if s:is_vim + throw v:exception + else + throw 'Error on request: '.v:exception + endif + endif + endtry +endfunction + +function! s:notify(method, args) dict + let channel = coc#client#get_channel(self) + if empty(channel) + return '' + endif + try + if s:is_vim + call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n") + else + call call('rpcnotify', [channel, a:method] + a:args) + endif + catch /.*/ + if v:exception =~# 'E475' + if get(g:, 'coc_vim_leaving', 0) + return + endif + echohl Error | echom '['.self.name.'] server connection lost' | echohl None + let name = self.name + call s:on_exit(name, 0) + execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:] + elseif v:exception =~# 'E12' + " neovim's bug, ignore it + else + echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None + endif + endtry +endfunction + +function! s:request_async(method, args, cb) dict + let channel = coc#client#get_channel(self) + if empty(channel) | return '' | endif + if type(a:cb) != 2 + echohl Error | echom '['.self['name'].'] Callback should be function' | echohl None + return + endif + let id = self.async_req_id + let self.async_req_id = id + 1 + let self.async_callbacks[id] = a:cb + call self['notify']('nvim_async_request_event', [id, a:method, a:args]) +endfunction + +function! s:on_async_response(id, resp, isErr) dict + let Callback = get(self.async_callbacks, a:id, v:null) + if empty(Callback) + " should not happen + echohl Error | echom 'callback not found' | echohl None + return + endif + call remove(self.async_callbacks, a:id) + if a:isErr + call call(Callback, [a:resp, v:null]) + else + call call(Callback, [v:null, a:resp]) + endif +endfunction + +function! coc#client#is_running(name) abort + let client = get(s:clients, a:name, v:null) + if empty(client) | return 0 | endif + if !client['running'] | return 0 | endif + try + if s:is_vim + let status = job_status(ch_getjob(client['channel'])) + return status ==# 'run' + else + let chan_id = client['chan_id'] + let [code] = jobwait([chan_id], 10) + return code == -1 + endif + catch /.*/ + return 0 + endtry +endfunction + +function! coc#client#stop(name) abort + let client = get(s:clients, a:name, v:null) + if empty(client) | return 1 | endif + let running = coc#client#is_running(a:name) + if !running + echohl WarningMsg | echom 'client '.a:name. ' not running.' | echohl None + return 1 + endif + if s:is_vim + call job_stop(ch_getjob(client['channel']), 'term') + else + call jobstop(client['chan_id']) + endif + sleep 200m + if coc#client#is_running(a:name) + echohl Error | echom 'client '.a:name. ' stop failed.' | echohl None + return 0 + endif + call s:on_exit(a:name, 0) + echohl MoreMsg | echom 'client '.a:name.' stopped!' | echohl None + return 1 +endfunction + +function! coc#client#kill(name) abort + let client = get(s:clients, a:name, v:null) + if empty(client) | return 1 | endif + let running = coc#client#is_running(a:name) + if empty(client) || exists('$COC_NVIM_REMOTE_ADDRESS') + return 1 + endif + if running + if s:is_vim + call job_stop(ch_getjob(client['channel']), 'kill') + else + call jobstop(client['chan_id']) + endif + endif +endfunction + +function! coc#client#request(name, method, args) + let client = get(s:clients, a:name, v:null) + if !empty(client) + return client['request'](a:method, a:args) + endif +endfunction + +function! coc#client#notify(name, method, args) + let client = get(s:clients, a:name, v:null) + if !empty(client) + call client['notify'](a:method, a:args) + endif +endfunction + +function! coc#client#request_async(name, method, args, cb) + let client = get(s:clients, a:name, v:null) + if !empty(client) + call client['request_async'](a:method, a:args, a:cb) + endif +endfunction + +function! coc#client#on_response(name, id, resp, isErr) + let client = get(s:clients, a:name, v:null) + if !empty(client) + call client['on_async_response'](a:id, a:resp, a:isErr) + endif +endfunction + +function! coc#client#restart(name) abort + let stopped = coc#client#stop(a:name) + if !stopped | return | endif + let client = get(s:clients, a:name, v:null) + if !empty(client) + call client['start']() + endif +endfunction + +function! coc#client#restart_all() + for key in keys(s:clients) + call coc#client#restart(key) + endfor +endfunction + +function! coc#client#open_log() + if !get(g:, 'node_client_debug', 0) + echohl Error | echon '[coc.nvim] use let g:node_client_debug = 1 in your vimrc to enable debug mode.' | echohl None + return + endif + execute 'vs '.s:logfile +endfunction + +function! s:on_error(name, msgs) abort + echohl ErrorMsg + echo join(a:msgs, "\n") + echohl None + let client = get(s:clients, a:name, v:null) + if !empty(client) + let errors = get(client, 'stderr', []) + call extend(errors, a:msgs) + let client['stderr'] = errors + endif +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/color.vim b/pack/acp/opt/coc.nvim/autoload/coc/color.vim new file mode 100644 index 0000000..e0d92fc --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/color.vim @@ -0,0 +1,610 @@ +scriptencoding utf-8 + +let s:activate = "" +let s:quit = "" +if has("gui_macvim") && has('gui_running') + let s:app = "MacVim" +elseif $TERM_PROGRAM ==# "Apple_Terminal" + let s:app = "Terminal" +elseif $TERM_PROGRAM ==# "iTerm.app" + let s:app = "iTerm2" +elseif has('mac') + let s:app = "System Events" + let s:quit = "quit" + let s:activate = 'activate' +endif + +let s:patterns = {} +let s:patterns['hex'] = '\v#?(\x{2})(\x{2})(\x{2})' +let s:patterns['shortHex'] = '\v#(\x{1})(\x{1})(\x{1})' + +let s:xterm_colors = { + \ '0': '#000000', '1': '#800000', '2': '#008000', '3': '#808000', '4': '#000080', + \ '5': '#800080', '6': '#008080', '7': '#c0c0c0', '8': '#808080', '9': '#ff0000', + \ '10': '#00ff00', '11': '#ffff00', '12': '#0000ff', '13': '#ff00ff', '14': '#00ffff', + \ '15': '#ffffff', '16': '#000000', '17': '#00005f', '18': '#000087', '19': '#0000af', + \ '20': '#0000df', '21': '#0000ff', '22': '#005f00', '23': '#005f5f', '24': '#005f87', + \ '25': '#005faf', '26': '#005fdf', '27': '#005fff', '28': '#008700', '29': '#00875f', + \ '30': '#008787', '31': '#0087af', '32': '#0087df', '33': '#0087ff', '34': '#00af00', + \ '35': '#00af5f', '36': '#00af87', '37': '#00afaf', '38': '#00afdf', '39': '#00afff', + \ '40': '#00df00', '41': '#00df5f', '42': '#00df87', '43': '#00dfaf', '44': '#00dfdf', + \ '45': '#00dfff', '46': '#00ff00', '47': '#00ff5f', '48': '#00ff87', '49': '#00ffaf', + \ '50': '#00ffdf', '51': '#00ffff', '52': '#5f0000', '53': '#5f005f', '54': '#5f0087', + \ '55': '#5f00af', '56': '#5f00df', '57': '#5f00ff', '58': '#5f5f00', '59': '#5f5f5f', + \ '60': '#5f5f87', '61': '#5f5faf', '62': '#5f5fdf', '63': '#5f5fff', '64': '#5f8700', + \ '65': '#5f875f', '66': '#5f8787', '67': '#5f87af', '68': '#5f87df', '69': '#5f87ff', + \ '70': '#5faf00', '71': '#5faf5f', '72': '#5faf87', '73': '#5fafaf', '74': '#5fafdf', + \ '75': '#5fafff', '76': '#5fdf00', '77': '#5fdf5f', '78': '#5fdf87', '79': '#5fdfaf', + \ '80': '#5fdfdf', '81': '#5fdfff', '82': '#5fff00', '83': '#5fff5f', '84': '#5fff87', + \ '85': '#5fffaf', '86': '#5fffdf', '87': '#5fffff', '88': '#870000', '89': '#87005f', + \ '90': '#870087', '91': '#8700af', '92': '#8700df', '93': '#8700ff', '94': '#875f00', + \ '95': '#875f5f', '96': '#875f87', '97': '#875faf', '98': '#875fdf', '99': '#875fff', + \ '100': '#878700', '101': '#87875f', '102': '#878787', '103': '#8787af', '104': '#8787df', + \ '105': '#8787ff', '106': '#87af00', '107': '#87af5f', '108': '#87af87', '109': '#87afaf', + \ '110': '#87afdf', '111': '#87afff', '112': '#87df00', '113': '#87df5f', '114': '#87df87', + \ '115': '#87dfaf', '116': '#87dfdf', '117': '#87dfff', '118': '#87ff00', '119': '#87ff5f', + \ '120': '#87ff87', '121': '#87ffaf', '122': '#87ffdf', '123': '#87ffff', '124': '#af0000', + \ '125': '#af005f', '126': '#af0087', '127': '#af00af', '128': '#af00df', '129': '#af00ff', + \ '130': '#af5f00', '131': '#af5f5f', '132': '#af5f87', '133': '#af5faf', '134': '#af5fdf', + \ '135': '#af5fff', '136': '#af8700', '137': '#af875f', '138': '#af8787', '139': '#af87af', + \ '140': '#af87df', '141': '#af87ff', '142': '#afaf00', '143': '#afaf5f', '144': '#afaf87', + \ '145': '#afafaf', '146': '#afafdf', '147': '#afafff', '148': '#afdf00', '149': '#afdf5f', + \ '150': '#afdf87', '151': '#afdfaf', '152': '#afdfdf', '153': '#afdfff', '154': '#afff00', + \ '155': '#afff5f', '156': '#afff87', '157': '#afffaf', '158': '#afffdf', '159': '#afffff', + \ '160': '#df0000', '161': '#df005f', '162': '#df0087', '163': '#df00af', '164': '#df00df', + \ '165': '#df00ff', '166': '#df5f00', '167': '#df5f5f', '168': '#df5f87', '169': '#df5faf', + \ '170': '#df5fdf', '171': '#df5fff', '172': '#df8700', '173': '#df875f', '174': '#df8787', + \ '175': '#df87af', '176': '#df87df', '177': '#df87ff', '178': '#dfaf00', '179': '#dfaf5f', + \ '180': '#dfaf87', '181': '#dfafaf', '182': '#dfafdf', '183': '#dfafff', '184': '#dfdf00', + \ '185': '#dfdf5f', '186': '#dfdf87', '187': '#dfdfaf', '188': '#dfdfdf', '189': '#dfdfff', + \ '190': '#dfff00', '191': '#dfff5f', '192': '#dfff87', '193': '#dfffaf', '194': '#dfffdf', + \ '195': '#dfffff', '196': '#ff0000', '197': '#ff005f', '198': '#ff0087', '199': '#ff00af', + \ '200': '#ff00df', '201': '#ff00ff', '202': '#ff5f00', '203': '#ff5f5f', '204': '#ff5f87', + \ '205': '#ff5faf', '206': '#ff5fdf', '207': '#ff5fff', '208': '#ff8700', '209': '#ff875f', + \ '210': '#ff8787', '211': '#ff87af', '212': '#ff87df', '213': '#ff87ff', '214': '#ffaf00', + \ '215': '#ffaf5f', '216': '#ffaf87', '217': '#ffafaf', '218': '#ffafdf', '219': '#ffafff', + \ '220': '#ffdf00', '221': '#ffdf5f', '222': '#ffdf87', '223': '#ffdfaf', '224': '#ffdfdf', + \ '225': '#ffdfff', '226': '#ffff00', '227': '#ffff5f', '228': '#ffff87', '229': '#ffffaf', + \ '230': '#ffffdf', '231': '#ffffff', '232': '#080808', '233': '#121212', '234': '#1c1c1c', + \ '235': '#262626', '236': '#303030', '237': '#3a3a3a', '238': '#444444', '239': '#4e4e4e', + \ '240': '#585858', '241': '#606060', '242': '#666666', '243': '#767676', '244': '#808080', + \ '245': '#8a8a8a', '246': '#949494', '247': '#9e9e9e', '248': '#a8a8a8', '249': '#b2b2b2', + \ '250': '#bcbcbc', '251': '#c6c6c6', '252': '#d0d0d0', '253': '#dadada', '254': '#e4e4e4', + \ '255': '#eeeeee'} + +let s:xterm_16colors = { +\ 'black': '#000000', +\ 'darkblue': '#00008B', +\ 'darkgreen': '#00CD00', +\ 'darkcyan': '#00CDCD', +\ 'darkred': '#CD0000', +\ 'darkmagenta': '#8B008B', +\ 'brown': '#CDCD00', +\ 'darkyellow': '#CDCD00', +\ 'lightgrey': '#E5E5E5', +\ 'lightgray': '#E5E5E5', +\ 'gray': '#E5E5E5', +\ 'grey': '#E5E5E5', +\ 'darkgrey': '#7F7F7F', +\ 'darkgray': '#7F7F7F', +\ 'blue': '#5C5CFF', +\ 'lightblue': '#5C5CFF', +\ 'green': '#00FF00', +\ 'lightgreen': '#00FF00', +\ 'cyan': '#00FFFF', +\ 'lightcyan': '#00FFFF', +\ 'red': '#FF0000', +\ 'lightred': '#FF0000', +\ 'magenta': '#FF00FF', +\ 'lightmagenta': '#FF00FF', +\ 'yellow': '#FFFF00', +\ 'lightyellow': '#FFFF00', +\ 'white': '#FFFFFF', +\ } + +let s:w3c_color_names = { +\ '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', +\ 'cyan': '#00FFFF', +\ 'darkblue': '#00008B', +\ 'darkcyan': '#008B8B', +\ 'darkgoldenrod': '#B8860B', +\ 'darkgray': '#A9A9A9', +\ 'darkgreen': '#006400', +\ 'darkkhaki': '#BDB76B', +\ 'darkmagenta': '#8B008B', +\ 'darkolivegreen': '#556B2F', +\ 'darkorange': '#FF8C00', +\ 'darkorchid': '#9932CC', +\ 'darkred': '#8B0000', +\ 'darksalmon': '#E9967A', +\ 'darkseagreen': '#8FBC8F', +\ 'darkslateblue': '#483D8B', +\ 'darkslategray': '#2F4F4F', +\ 'darkturquoise': '#00CED1', +\ 'darkviolet': '#9400D3', +\ 'deeppink': '#FF1493', +\ 'deepskyblue': '#00BFFF', +\ 'dimgray': '#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', +\ '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', +\ 'lightpink': '#FFB6C1', +\ 'lightsalmon': '#FFA07A', +\ 'lightseagreen': '#20B2AA', +\ 'lightskyblue': '#87CEFA', +\ 'lightslategray': '#778899', +\ 'lightsteelblue': '#B0C4DE', +\ 'lightyellow': '#FFFFE0', +\ 'lime': '#00FF00', +\ 'limegreen': '#32CD32', +\ 'linen': '#FAF0E6', +\ 'magenta': '#FF00FF', +\ 'maroon': '#800000', +\ 'mediumaquamarine': '#66CDAA', +\ 'mediumblue': '#0000CD', +\ 'mediumorchid': '#BA55D3', +\ 'mediumpurple': '#9370D8', +\ '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': '#D87093', +\ 'papayawhip': '#FFEFD5', +\ 'peachpuff': '#FFDAB9', +\ 'peru': '#CD853F', +\ 'pink': '#FFC0CB', +\ 'plum': '#DDA0DD', +\ 'powderblue': '#B0E0E6', +\ 'purple': '#800080', +\ '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', +\ 'snow': '#FFFAFA', +\ 'springgreen': '#00FF7F', +\ 'steelblue': '#4682B4', +\ 'tan': '#D2B48C', +\ 'teal': '#008080', +\ 'thistle': '#D8BFD8', +\ 'tomato': '#FF6347', +\ 'turquoise': '#40E0D0', +\ 'violet': '#EE82EE', +\ 'wheat': '#F5DEB3', +\ 'white': '#FFFFFF', +\ 'whitesmoke': '#F5F5F5', +\ 'yellow': '#FFFF00', +\ 'yellowgreen': '#9ACD32' +\ } + +" Returns an approximate grey index for the given grey level +fun! s:grey_number(x) + if &t_Co == 88 + if a:x < 23 + return 0 + elseif a:x < 69 + return 1 + elseif a:x < 103 + return 2 + elseif a:x < 127 + return 3 + elseif a:x < 150 + return 4 + elseif a:x < 173 + return 5 + elseif a:x < 196 + return 6 + elseif a:x < 219 + return 7 + elseif a:x < 243 + return 8 + else + return 9 + endif + else + if a:x < 14 + return 0 + else + let l:n = (a:x - 8) / 10 + let l:m = (a:x - 8) % 10 + if l:m < 5 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" Returns the actual grey level represented by the grey index +fun! s:grey_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 46 + elseif a:n == 2 + return 92 + elseif a:n == 3 + return 115 + elseif a:n == 4 + return 139 + elseif a:n == 5 + return 162 + elseif a:n == 6 + return 185 + elseif a:n == 7 + return 208 + elseif a:n == 8 + return 231 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 8 + (a:n * 10) + endif + endif +endfun + +" Returns the palette index for the given grey index +fun! s:grey_colour(n) + if &t_Co == 88 + if a:n == 0 + return 16 + elseif a:n == 9 + return 79 + else + return 79 + a:n + endif + else + if a:n == 0 + return 16 + elseif a:n == 25 + return 231 + else + return 231 + a:n + endif + endif +endfun + +" Returns an approximate colour index for the given colour level +fun! s:rgb_number(x) + if &t_Co == 88 + if a:x < 69 + return 0 + elseif a:x < 172 + return 1 + elseif a:x < 230 + return 2 + else + return 3 + endif + else + if a:x < 75 + return 0 + else + let l:n = (a:x - 55) / 40 + let l:m = (a:x - 55) % 40 + if l:m < 20 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" Returns the palette index for the given R/G/B colour indices +fun! s:rgb_colour(x, y, z) + if &t_Co == 88 + return 16 + (a:x * 16) + (a:y * 4) + a:z + else + return 16 + (a:x * 36) + (a:y * 6) + a:z + endif +endfun + +" Returns the actual colour level for the given colour index +fun! s:rgb_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 139 + elseif a:n == 2 + return 205 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 55 + (a:n * 40) + endif + endif +endfun + +" Returns the palette index to approximate the given R/G/B colour levels +fun! s:colour(r, g, b) + " Get the closest grey + let l:gx = s:grey_number(a:r) + let l:gy = s:grey_number(a:g) + let l:gz = s:grey_number(a:b) + + " Get the closest colour + let l:x = s:rgb_number(a:r) + let l:y = s:rgb_number(a:g) + let l:z = s:rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " There are two possibilities + let l:dgr = s:grey_level(l:gx) - a:r + let l:dgg = s:grey_level(l:gy) - a:g + let l:dgb = s:grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = s:rgb_level(l:gx) - a:r + let l:dg = s:rgb_level(l:gy) - a:g + let l:db = s:rgb_level(l:gz) - a:b + let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) + if l:dgrey < l:drgb + " Use the grey + return s:grey_colour(l:gx) + else + " Use the colour + return s:rgb_colour(l:x, l:y, l:z) + endif + else + " Only one possibility + return s:rgb_colour(l:x, l:y, l:z) + endif +endfun + +function! coc#color#term2rgb(term) abort + if a:term < 0 || a:term > 255 + return '#000000' + endif + return s:xterm_colors[a:term] +endfunction + +function! coc#color#rgb2term(rgb) + let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 + let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 + let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 + return s:colour(l:r, l:g, l:b) +endfunction + +function! coc#color#rgbToHex(...) + let [r, g, b] = ( a:0==1 ? a:1 : a:000 ) + let num = printf('%02x', float2nr(r)) . '' + \ . printf('%02x', float2nr(g)) . '' + \ . printf('%02x', float2nr(b)) . '' + return '#' . num +endfunction + +function! coc#color#hexToRgb(color) + if type(a:color) == 2 + let color = printf('%x', a:color) + else + let color = a:color + end + let matches = matchlist(color, s:patterns['hex']) + let factor = 0x1 + if empty(matches) + let matches = matchlist(color, s:patterns['shortHex']) + let factor = 0x10 + end + if len(matches) < 4 + echohl Error + echom 'Couldnt parse ' . string(color) . ' ' . string(matches) + echohl None + return + end + let r = str2nr(matches[1], 16) * factor + let g = str2nr(matches[2], 16) * factor + let b = str2nr(matches[3], 16) * factor + return [r, g, b] +endfunction + +function! coc#color#lighten(color, ...) + let amount = a:0 ? + \(type(a:1) < 2 ? + \str2float(a:1) : a:1 ) + \: 5 + let rgb = coc#color#hexToRgb(a:color) + let rgb = map(rgb, 'v:val + amount*(255 - v:val)/255') + let rgb = map(rgb, 'v:val > 255.0 ? 255.0 : v:val') + let rgb = map(rgb, 'float2nr(v:val)') + let hex = coc#color#rgbToHex(rgb) + return hex +endfunction + +function! coc#color#darken(color, ...) + let amount = a:0 ? + \(type(a:1) < 2 ? + \str2float(a:1) : a:1 ) + \: 5.0 + let rgb = coc#color#hexToRgb(a:color) + let rgb = map(rgb, 'v:val - amount*v:val/255') + let rgb = map(rgb, 'v:val < 0.0 ? 0.0 : v:val') + let rgb = map(rgb, 'float2nr(v:val)') + let hex = coc#color#rgbToHex(rgb) + return hex +endfu + +function! coc#color#luminance(rgb) abort + let vals = [] + for val in a:rgb + let val = (val + 0.0)/255 + if val <= 0.03928 + call add(vals, val/12.92) + else + call add(vals, pow((val + 0.055)/1.055, 2.4)) + endif + endfor + return vals[0] * 0.2126 + vals[1] * 0.7152 + vals[2] * 0.0722 +endfunction + +function! coc#color#contrast(rgb1, rgb2) abort + let lnum1 = coc#color#luminance(a:rgb1) + let lnum2 = coc#color#luminance(a:rgb2) + let brightest = lnum1 > lnum2 ? lnum1 : lnum2 + let darkest = lnum1 < lnum2 ? lnum1 : lnum2 + return (brightest + 0.05) / (darkest + 0.05) +endfunction + +function! coc#color#hex_contrast(hex1, hex2) abort + return coc#color#contrast(coc#color#hexToRgb(a:hex1), coc#color#hexToRgb(a:hex2)) +endfunction + +function! coc#color#nameToHex(name, term) abort + if a:term + return has_key(s:xterm_16colors, a:name) ? s:xterm_16colors[a:name] : v:null + endif + return has_key(s:w3c_color_names, a:name) ? s:w3c_color_names[a:name] : v:null +endfunction + +" [r, g, b] ['255', '255', '255'] +" return ['65535', '65535', '65535'] or return v:false to cancel +function! coc#color#pick_color(default_color) + if has('mac') + let default_color = map(a:default_color, {idx, val -> str2nr(val) * 65535 / 255 }) + " This is the AppleScript magic: + let ascrpt = ['-e "tell application \"' . s:app . '\""', + \ '-e "' . s:activate . '"', + \ "-e \"set AppleScript's text item delimiters to {\\\",\\\"}\"", + \ '-e "set theColor to (choose color default color {' . default_color[0] . ", " . default_color[1] . ", " . default_color[2] . '}) as text"', + \ '-e "' . s:quit . '"', + \ '-e "end tell"', + \ '-e "return theColor"'] + let res = trim(system("osascript " . join(ascrpt, ' ') . " 2>/dev/null")) + if empty(res) + return v:false + else + return split(trim(res), ',') + endif + endif + + let hex_color = printf('#%02x%02x%02x', a:default_color[0], a:default_color[1], a:default_color[2]) + + if has('unix') + if executable('zenity') + let res = trim(system('zenity --title="Select a color" --color-selection --color="' . hex_color . '" 2> /dev/null')) + if empty(res) + return v:false + else + " res format is rgb(255,255,255) + return map(split(res[4:-2], ','), {idx, val -> string(str2nr(trim(val)) * 65535 / 255)}) + endif + endif + endif + + let rgb = v:false + if !has('python') + echohl Error | echom 'python support required, checkout :echo has(''python'')' | echohl None + return + endif + try + execute 'py import gtk' + catch /.*/ + echohl Error | echom 'python gtk module not found' | echohl None + return + endtry +python << endpython + +import vim +import gtk, sys + +# message strings +wnd_title_insert = "Insert a color" + +csd = gtk.ColorSelectionDialog(wnd_title_insert) +cs = csd.colorsel + +cs.set_current_color(gtk.gdk.color_parse(vim.eval("hex_color"))) + +cs.set_current_alpha(65535) +cs.set_has_opacity_control(False) +# cs.set_has_palette(int(vim.eval("s:display_palette"))) + +if csd.run()==gtk.RESPONSE_OK: + c = cs.get_current_color() + s = [str(int(c.red)),',',str(int(c.green)),',',str(int(c.blue))] + thecolor = ''.join(s) + vim.command(":let rgb = split('%s',',')" % thecolor) + +csd.destroy() + +endpython + return rgb +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/compat.vim b/pack/acp/opt/coc.nvim/autoload/coc/compat.vim new file mode 100644 index 0000000..21bab01 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/compat.vim @@ -0,0 +1,203 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') + +" first window id for bufnr +" builtin bufwinid returns window of current tab only +function! coc#compat#buf_win_id(bufnr) abort + let info = filter(getwininfo(), 'v:val["bufnr"] =='.a:bufnr) + if empty(info) + return -1 + endif + return info[0]['winid'] +endfunction + +function! coc#compat#buf_set_lines(bufnr, start, end, replacement) abort + if s:is_vim + call coc#api#exec('buf_set_lines', [a:bufnr, a:start, a:end, 0, a:replacement]) + else + call nvim_buf_set_lines(a:bufnr, a:start, a:end, 0, a:replacement) + endif +endfunction + +function! coc#compat#buf_line_count(bufnr) abort + if exists('*nvim_buf_line_count') + return nvim_buf_line_count(a:bufnr) + endif + if bufnr('%') == a:bufnr + return line('$') + endif + if exists('*getbufinfo') + let info = getbufinfo(a:bufnr) + if empty(info) + return 0 + endif + " vim 8.1 has getbufinfo but no linecount + if has_key(info[0], 'linecount') + return info[0]['linecount'] + endif + endif + if exists('*getbufline') + let lines = getbufline(a:bufnr, 1, '$') + return len(lines) + endif + let curr = bufnr('%') + execute 'noa buffer '.a:bufnr + let n = line('$') + execute 'noa buffer '.curr + return n +endfunction + +function! coc#compat#prepend_lines(bufnr, replacement) abort + if exists('*appendbufline') + call appendbufline(a:bufnr, 0, a:replacement) + elseif !s:is_vim + call nvim_buf_set_lines(a:bufnr, 0, 0, 0, a:replacement) + else + throw 'appendbufline() required for prepend lines.' + endif +endfunction + +function! coc#compat#win_is_valid(winid) abort + if exists('*nvim_win_is_valid') + return nvim_win_is_valid(a:winid) + endif + return !empty(getwininfo(a:winid)) +endfunction + +" clear matches by window id, not throw on none exists window. +" may not work on vim < 8.1.1084 & neovim < 0.4.0 +function! coc#compat#clear_matches(winid) abort + if !coc#compat#win_is_valid(a:winid) + return + endif + let curr = win_getid() + if curr == a:winid + call clearmatches() + return + endif + if s:is_vim + if has('patch-8.1.1084') + call clearmatches(a:winid) + endif + else + if exists('*nvim_set_current_win') + noa call nvim_set_current_win(a:winid) + call clearmatches() + noa call nvim_set_current_win(curr) + endif + endif +endfunction + +function! coc#compat#matchaddpos(group, pos, priority, winid) abort + let curr = win_getid() + if curr == a:winid + call matchaddpos(a:group, a:pos, a:priority, -1) + else + if s:is_vim + if has('patch-8.1.0218') + call matchaddpos(a:group, a:pos, a:priority, -1, {'window': a:winid}) + endif + else + call matchaddpos(a:group, a:pos, a:priority, -1, {'window': a:winid}) + endif + endif +endfunction + +function! coc#compat#buf_del_var(bufnr, name) abort + if !bufloaded(a:bufnr) + return + endif + if exists('*nvim_buf_del_var') + silent! call nvim_buf_del_var(a:bufnr, a:name) + else + if a:bufnr == bufnr('%') + execute 'unlet! b:'.a:name + elseif exists('*win_execute') + let winid = coc#compat#buf_win_id(a:bufnr) + if winid != -1 + call win_execute(winid, 'unlet! b:'.a:name) + endif + endif + endif +endfunction + +" hlGroup, pos, priority +function! coc#compat#matchaddgroups(winid, groups) abort + for group in a:groups + call matchaddpos(group['hlGroup'], [group['pos']], group['priority'], -1, {'window': a:winid}) + endfor +endfunction + +function! coc#compat#del_var(name) abort + if exists('*nvim_del_var') + silent! call nvim_del_var(a:name) + else + execute 'unlet! '.a:name + endif +endfunction + +" remove keymap for specific buffer +function! coc#compat#buf_del_keymap(bufnr, mode, lhs) abort + if !bufloaded(a:bufnr) + return + endif + if exists('*nvim_buf_del_keymap') + try + call nvim_buf_del_keymap(a:bufnr, a:mode, a:lhs) + catch /^Vim\%((\a\+)\)\=:E5555/ + " ignore keymap doesn't exist + endtry + return + endif + try + call coc#api#exec('buf_del_keymap', [a:bufnr, a:mode, a:lhs]) + catch /E31/ + " ignore keymap doesn't exist + endtry +endfunction + +function! coc#compat#buf_add_keymap(bufnr, mode, lhs, rhs, opts) abort + if !bufloaded(a:bufnr) + return + endif + if exists('*nvim_buf_set_keymap') + call nvim_buf_set_keymap(a:bufnr, a:mode, a:lhs, a:rhs, a:opts) + else + call coc#api#exec('buf_set_keymap', [a:bufnr, a:mode, a:lhs, a:rhs, a:opts]) + endif +endfunction + +" execute command or list of commands in window +function! coc#compat#execute(winid, command, ...) abort + if exists('*win_execute') + if type(a:command) == v:t_string + keepalt call win_execute(a:winid, a:command, get(a:, 1, '')) + elseif type(a:command) == v:t_list + keepalt call win_execute(a:winid, join(a:command, "\n"), get(a:, 1, '')) + endif + elseif has('nvim') + if !nvim_win_is_valid(a:winid) + return + endif + let curr = nvim_get_current_win() + noa keepalt call nvim_set_current_win(a:winid) + if type(a:command) == v:t_string + exe get(a:, 1, '').' '.a:command + elseif type(a:command) == v:t_list + for cmd in a:command + exe get(a:, 1, '').' '.cmd + endfor + endif + noa keepalt call nvim_set_current_win(curr) + else + throw 'win_execute does not exist, please upgrade vim.' + endif +endfunc + +function! coc#compat#trim(str) + if exists('*trim') + return trim(a:str) + endif + " TODO trim from beginning + return substitute(a:str, '\s\+$', '', '') +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/cursor.vim b/pack/acp/opt/coc.nvim/autoload/coc/cursor.vim new file mode 100644 index 0000000..74c81d9 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/cursor.vim @@ -0,0 +1,59 @@ +scriptencoding utf-8 + +" Position of cursor relative to screen cell +function! coc#cursor#screen_pos() abort + let nr = winnr() + let [row, col] = win_screenpos(nr) + return [row + winline() - 2, col + wincol() - 2] +endfunction + +function! coc#cursor#move_by_col(delta) + let pos = getcurpos() + call cursor(pos[1], pos[2] + a:delta) +endfunction + +" Get cursor position. +function! coc#cursor#position() + let line = getline('.') + return [line('.') - 1, coc#string#character_index(line, col('.') - 1)] +endfunction + +" Move cursor to position. +function! coc#cursor#move_to(line, character) abort + let content = getline(a:line + 1) + call cursor(a:line + 1, coc#string#byte_index(content, a:character) + 1) +endfunction + +" Character offset of current cursor, vim provide bytes offset only. +function! coc#cursor#char_offset() abort + let offset = 0 + let lnum = line('.') + for i in range(1, lnum) + if i == lnum + let offset += strchars(strpart(getline('.'), 0, col('.')-1)) + else + let offset += strchars(getline(i)) + 1 + endif + endfor + return offset +endfunction + +" Returns latest selection range +function! coc#cursor#get_selection(char) abort + let m = a:char ? 'char' : visualmode() + if empty(m) + return v:null + endif + let [_, sl, sc, soff] = getpos(m ==# 'char' ? "'[" : "'<") + let [_, el, ec, eoff] = getpos(m ==# 'char' ? "']" : "'>") + let start_idx = coc#string#character_index(getline(sl), sc - 1) + if m ==# 'V' + return [sl - 1, start_idx, el, 0] + endif + let line = getline(el) + let end_idx = coc#string#character_index(line, ec - 1) + if m !=# 'char' + let end_idx = end_idx == coc#string#character_length(line) ? end_idx : end_idx + 1 + endif + return [sl - 1, start_idx, el - 1, end_idx] +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/dialog.vim b/pack/acp/opt/coc.nvim/autoload/coc/dialog.vim new file mode 100644 index 0000000..bbcd810 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/dialog.vim @@ -0,0 +1,753 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:root = expand(':h:h:h') +let s:prompt_win_bufnr = 0 +let s:list_win_bufnr = 0 +let s:prompt_win_width = get(g:, 'coc_prompt_win_width', 32) +let s:frames = ['ยท ', 'ยทยท ', 'ยทยทยท', ' ยทยท', ' ยท', ' '] +let s:sign_group = 'PopUpCocDialog' +let s:detail_bufnr = 0 + +" Float window aside pum +function! coc#dialog#create_pum_float(lines, config) abort + let winid = coc#float#get_float_by_kind('pumdetail') + if empty(a:lines) || !coc#pum#visible() + if winid + call coc#float#close(winid) + endif + return + endif + let pumbounding = coc#pum#info() + let border = get(a:config, 'border', []) + let pw = pumbounding['width'] + (pumbounding['border'] ? 0 : get(pumbounding, 'scrollbar', 0)) + let rp = &columns - pumbounding['col'] - pw + let showRight = pumbounding['col'] > rp ? 0 : 1 + let maxWidth = showRight ? coc#math#min(rp - 1, a:config['maxWidth']) : coc#math#min(pumbounding['col'] - 1, a:config['maxWidth']) + let bh = get(border, 0 ,0) + get(border, 2, 0) + let maxHeight = &lines - pumbounding['row'] - &cmdheight - 1 - bh + if maxWidth <= 2 || maxHeight < 1 + return v:null + endif + let width = 0 + for line in a:lines + let dw = max([1, strdisplaywidth(line)]) + let width = max([width, dw + 2]) + endfor + let width = float2nr(coc#math#min(maxWidth, width)) + let ch = coc#string#content_height(a:lines, width - 2) + let height = float2nr(coc#math#min(maxHeight, ch)) + let lines = map(a:lines, {_, s -> s =~# '^โ”€' ? repeat('โ”€', width - 2 + (s:is_vim && ch > height ? -1 : 0)) : s}) + let opts = { + \ 'lines': lines, + \ 'highlights': get(a:config, 'highlights', []), + \ 'relative': 'editor', + \ 'col': showRight ? pumbounding['col'] + pw : pumbounding['col'] - width, + \ 'row': pumbounding['row'], + \ 'height': height, + \ 'width': width - 2 + (s:is_vim && ch > height ? -1 : 0), + \ 'scrollinside': showRight ? 0 : 1, + \ 'codes': get(a:config, 'codes', []), + \ } + for key in ['border', 'highlight', 'borderhighlight', 'winblend', 'focusable', 'shadow', 'rounded'] + if has_key(a:config, key) + let opts[key] = a:config[key] + endif + endfor + call s:close_auto_hide_wins(winid) + let result = coc#float#create_float_win(winid, s:detail_bufnr, opts) + if empty(result) + return + endif + let s:detail_bufnr = result[1] + call setwinvar(result[0], 'kind', 'pumdetail') + if !s:is_vim + call coc#float#nvim_scrollbar(result[0]) + endif +endfunction + +" Float window below/above cursor +function! coc#dialog#create_cursor_float(winid, bufnr, lines, config) abort + if coc#prompt#activated() + return v:null + endif + let pumAlignTop = get(a:config, 'pumAlignTop', 0) + let modes = get(a:config, 'modes', ['n', 'i', 'ic', 's']) + let mode = mode() + let currbuf = bufnr('%') + let pos = [line('.'), col('.')] + if index(modes, mode) == -1 + return v:null + endif + if !s:is_vim && !has('nvim-0.5.0') && mode ==# 'i' + " helps to fix undo issue, don't know why. + call feedkeys("\u", 'n') + endif + if mode ==# 's' && has('patch-8.2.4969') && !has('patch-8.2.4996') + echohl WarningMsg | echon 'Popup not created to avoid issue #10466 on vim >= 8.2.4969' | echohl None + return v:null + endif + let dimension = coc#dialog#get_config_cursor(a:lines, a:config) + if empty(dimension) + return v:null + endif + if coc#pum#visible() && ((pumAlignTop && dimension['row'] <0)|| (!pumAlignTop && dimension['row'] > 0)) + return v:null + endif + let width = dimension['width'] + let lines = map(a:lines, {_, s -> s =~# '^โ”€' ? repeat('โ”€', width) : s}) + let config = extend(extend({'lines': lines, 'relative': 'cursor'}, a:config), dimension) + call s:close_auto_hide_wins(a:winid) + let res = coc#float#create_float_win(a:winid, a:bufnr, config) + if empty(res) + return v:null + endif + let alignTop = dimension['row'] < 0 + let winid = res[0] + let bufnr = res[1] + redraw + if has('nvim') + call coc#float#nvim_scrollbar(winid) + endif + return [currbuf, pos, winid, bufnr, alignTop] +endfunction + +" Use terminal buffer +function! coc#dialog#_create_prompt_vim(title, default, opts) abort + if !has('patch-8.2.0750') + throw 'Input box not supported on vim < 8.2.0750' + endif + execute 'hi link CocPopupTerminal '.get(a:opts, 'highlight', 'CocFloating') + let node = expand(get(g:, 'coc_node_path', 'node')) + let placeHolder = get(a:opts, 'placeHolder', '') + let opt = { + \ 'term_rows': 1, + \ 'hidden': 1, + \ 'term_finish': 'close', + \ 'norestore': 1, + \ 'term_highlight': 'CocPopupTerminal' + \ } + let bufnr = term_start([node, s:root . '/bin/prompt.js', a:default, empty(placeHolder) ? '' : placeHolder], opt) + call term_setapi(bufnr, 'Coc') + call setbufvar(bufnr, 'current', type(a:default) == v:t_string ? a:default : '') + let res = s:create_prompt_win(bufnr, a:title, a:default, a:opts) + if empty(res) + return + endif + let winid = res[0] + " call win_gotoid(winid) + call coc#util#do_autocmd('CocOpenFloatPrompt') + let pos = popup_getpos(winid) + " width height row col + let dimension = [pos['width'], pos['height'], pos['line'] - 1, pos['col'] - 1] + return [bufnr, winid, dimension] +endfunction + +" Use normal buffer on neovim +function! coc#dialog#_create_prompt_nvim(title, default, opts) abort + let result = s:create_prompt_win(s:prompt_win_bufnr, a:title, a:default, a:opts) + if empty(result) + return + endif + let winid = result[0] + let s:prompt_win_bufnr = result[1] + let bufnr = s:prompt_win_bufnr + call sign_unplace(s:sign_group, { 'buffer': s:prompt_win_bufnr }) + call nvim_set_current_win(winid) + inoremap + inoremap pumvisible() ? "\" : "\" + exe 'imap ' + exe 'nnoremap :call coc#float#close('.winid.')' + exe 'inoremap "\=coc#dialog#prompt_insert()\\"' + if get(a:opts, 'list', 0) + for key in ['', '', '', '', '', '', '', '', ''] + let escaped = key ==# '' ? '\' : substitute(key, '\(<\|>\)', '\\\1', 'g') + exe 'inoremap '.key.' call coc#rpc#notify("PromptKeyPress", ['.bufnr.', "'.escaped.'"])' + endfor + endif + let mode = mode() + if mode ==# 'n' + call feedkeys('A', 'int') + elseif mode ==# 'i' + call feedkeys("\", 'int') + endif + let placeHolder = get(a:opts, 'placeHolder', '') + if empty(a:default) && !empty(placeHolder) && has('nvim-0.5.0') + let src_id = coc#highlight#create_namespace('input-box') + call nvim_buf_set_extmark(bufnr, src_id, 0, 0, { + \ 'virt_text': [[placeHolder, 'CocInputBoxVirtualText']], + \ 'virt_text_pos': 'overlay', + \ }) + endif + call coc#util#do_autocmd('CocOpenFloatPrompt') + if !has('nvim-0.6.0') + redraw + endif + let id = coc#float#get_related(winid, 'border') + let pos = nvim_win_get_position(id) + let dimension = [nvim_win_get_width(id), nvim_win_get_height(id), pos[0], pos[1]] + return [bufnr, winid, dimension] +endfunction + +" Create float window for input +function! coc#dialog#create_prompt_win(title, default, opts) abort + call s:close_auto_hide_wins() + if s:is_vim + return coc#dialog#_create_prompt_vim(a:title, a:default, a:opts) + endif + return coc#dialog#_create_prompt_nvim(a:title, a:default, a:opts) +endfunction + +" Create list window under target window +function! coc#dialog#create_list(target, dimension, opts) abort + let maxHeight = get(a:opts, 'maxHeight', 30) + let height = get(a:opts, 'linecount', 1) + let height = min([maxHeight, height, &lines - &cmdheight - 1 - a:dimension['row'] + a:dimension['height']]) + let chars = get(a:opts, 'rounded', 1) ? ['โ•ฏ', 'โ•ฐ'] : ['โ”˜', 'โ””'] + let width = a:dimension['width'] - 2 + let config = extend(copy(a:opts), { + \ 'relative': 'editor', + \ 'row': a:dimension['row'] + a:dimension['height'], + \ 'col': a:dimension['col'], + \ 'width': width, + \ 'height': height, + \ 'border': [1, 1, 1, 1], + \ 'scrollinside': 1, + \ 'borderchars': extend(['โ”€', 'โ”‚', 'โ”€', 'โ”‚', 'โ”œ', 'โ”ค'], chars) + \ }) + let bufnr = 0 + let result = coc#float#create_float_win(0, s:list_win_bufnr, config) + if empty(result) + return + endif + let winid = result[0] + call coc#float#add_related(winid, a:target) + call setwinvar(winid, 'auto_height', get(a:opts, 'autoHeight', 1)) + call setwinvar(winid, 'core_width', width) + call setwinvar(winid, 'max_height', maxHeight) + call setwinvar(winid, 'target_winid', a:target) + call setwinvar(winid, 'kind', 'list') + call coc#dialog#check_scroll_vim(a:target) + return result +endfunction + +" Create menu picker for pick single item +function! coc#dialog#create_menu(lines, config) abort + call s:close_auto_hide_wins() + let highlight = get(a:config, 'highlight', 'CocFloating') + let borderhighlight = get(a:config, 'borderhighlight', [highlight]) + let relative = get(a:config, 'relative', 'cursor') + let lines = a:lines + let content = get(a:config, 'content', '') + let maxWidth = get(a:config, 'maxWidth', 80) + let highlights = get(a:config, 'highlights', []) + let contentCount = 0 + if !empty(content) + let contentLines = coc#string#reflow(split(content, '\r\?\n'), maxWidth) + let contentCount = len(contentLines) + let lines = extend(contentLines, lines) + if !empty(highlights) + for item in highlights + let item['lnum'] = item['lnum'] + contentCount + endfor + endif + endif + let opts = { + \ 'lines': lines, + \ 'highlight': highlight, + \ 'title': get(a:config, 'title', ''), + \ 'borderhighlight': borderhighlight, + \ 'maxWidth': maxWidth, + \ 'maxHeight': get(a:config, 'maxHeight', 80), + \ 'rounded': get(a:config, 'rounded', 0), + \ 'border': [1, 1, 1, 1], + \ 'highlights': highlights, + \ 'relative': relative, + \ } + if relative ==# 'editor' + let dimension = coc#dialog#get_config_editor(lines, opts) + else + let dimension = coc#dialog#get_config_cursor(lines, opts) + endif + call extend(opts, dimension) + let ids = coc#float#create_float_win(0, s:prompt_win_bufnr, opts) + if empty(ids) + return + endif + let s:prompt_win_bufnr = ids[1] + call coc#dialog#set_cursor(ids[0], ids[1], contentCount + 1) + redraw + if has('nvim') + call coc#float#nvim_scrollbar(ids[0]) + endif + return [ids[0], ids[1], contentCount] +endfunction + +" Create dialog at center of screen +function! coc#dialog#create_dialog(lines, config) abort + call s:close_auto_hide_wins() + " dialog always have borders + let title = get(a:config, 'title', '') + let buttons = get(a:config, 'buttons', []) + let highlight = get(a:config, 'highlight', 'CocFloating') + let borderhighlight = get(a:config, 'borderhighlight', [highlight]) + let opts = { + \ 'title': title, + \ 'rounded': get(a:config, 'rounded', 0), + \ 'relative': 'editor', + \ 'border': [1,1,1,1], + \ 'close': get(a:config, 'close', 1), + \ 'highlight': highlight, + \ 'highlights': get(a:config, 'highlights', []), + \ 'buttons': buttons, + \ 'borderhighlight': borderhighlight, + \ 'getchar': get(a:config, 'getchar', 0) + \ } + call extend(opts, coc#dialog#get_config_editor(a:lines, a:config)) + let bufnr = coc#float#create_buf(0, a:lines) + let res = coc#float#create_float_win(0, bufnr, opts) + if empty(res) + return + endif + if get(a:config, 'cursorline', 0) + call coc#dialog#place_sign(bufnr, 1) + endif + if has('nvim') + redraw + call coc#float#nvim_scrollbar(res[0]) + endif + return res +endfunction + +function! coc#dialog#prompt_confirm(title, cb) abort + call s:close_auto_hide_wins() + if s:is_vim && exists('*popup_dialog') + try + call popup_dialog(a:title. ' (y/n)?', { + \ 'highlight': 'Normal', + \ 'filter': 'popup_filter_yesno', + \ 'callback': {id, res -> a:cb(v:null, res)}, + \ 'borderchars': get(g:, 'coc_borderchars', ['โ”€', 'โ”‚', 'โ”€', 'โ”‚', 'โ•ญ', 'โ•ฎ', 'โ•ฏ', 'โ•ฐ']), + \ 'borderhighlight': ['MoreMsg'] + \ }) + catch /.*/ + call a:cb(v:exception) + endtry + return + endif + let text = ' '. a:title . ' (y/n)? ' + let maxWidth = coc#math#min(78, &columns - 2) + let width = coc#math#min(maxWidth, strdisplaywidth(text)) + let maxHeight = &lines - &cmdheight - 1 + let height = coc#math#min(maxHeight, float2nr(ceil(str2float(string(strdisplaywidth(text)))/width))) + let arr = coc#float#create_float_win(0, s:prompt_win_bufnr, { + \ 'col': &columns/2 - width/2 - 1, + \ 'row': maxHeight/2 - height/2 - 1, + \ 'width': width, + \ 'height': height, + \ 'border': [1,1,1,1], + \ 'focusable': v:false, + \ 'relative': 'editor', + \ 'highlight': 'Normal', + \ 'borderhighlight': 'MoreMsg', + \ 'style': 'minimal', + \ 'lines': [text], + \ }) + if empty(arr) + call a:cb('Window create failed!') + return + endif + let winid = arr[0] + let s:prompt_win_bufnr = arr[1] + call sign_unplace(s:sign_group, { 'buffer': s:prompt_win_bufnr }) + let res = 0 + redraw + " same result as vim + while 1 + let key = nr2char(getchar()) + if key == "\" + let res = -1 + break + elseif key == "\" || key == 'n' || key == 'N' + let res = 0 + break + elseif key == 'y' || key == 'Y' + let res = 1 + break + endif + endw + call coc#float#close(winid) + call a:cb(v:null, res) +endfunction + +" works on neovim only +function! coc#dialog#get_prompt_win() abort + if s:prompt_win_bufnr == 0 + return -1 + endif + return get(win_findbuf(s:prompt_win_bufnr), 0, -1) +endfunction + +function! coc#dialog#get_config_editor(lines, config) abort + let title = get(a:config, 'title', '') + let maxheight = min([get(a:config, 'maxHeight', 78), &lines - &cmdheight - 6]) + let maxwidth = min([get(a:config, 'maxWidth', 78), &columns - 2]) + let buttons = get(a:config, 'buttons', []) + let minwidth = s:min_btns_width(buttons) + if maxheight <= 0 || maxwidth <= 0 || minwidth > maxwidth + throw 'Not enough spaces for float window' + endif + let ch = 0 + let width = min([strdisplaywidth(title) + 1, maxwidth]) + for line in a:lines + let dw = max([1, strdisplaywidth(line)]) + if dw < maxwidth && dw > width + let width = dw + elseif dw >= maxwidth + let width = maxwidth + endif + let ch += float2nr(ceil(str2float(string(dw))/maxwidth)) + endfor + let width = max([minwidth, width]) + let height = coc#math#min(ch ,maxheight) + return { + \ 'row': &lines/2 - (height + 4)/2, + \ 'col': &columns/2 - (width + 2)/2, + \ 'width': width, + \ 'height': height, + \ } +endfunction + +function! coc#dialog#prompt_insert() abort + let value = getline('.') + call coc#rpc#notify('PromptInsert', [value, bufnr('%')]) + return '' +endfunction + +" Dimension of window with lines relative to cursor +" Width & height excludes border & padding +function! coc#dialog#get_config_cursor(lines, config) abort + let preferTop = get(a:config, 'preferTop', 0) + let title = get(a:config, 'title', '') + let border = get(a:config, 'border', []) + if empty(border) && len(title) + let border = [1, 1, 1, 1] + endif + let bh = get(border, 0, 0) + get(border, 2, 0) + let vh = &lines - &cmdheight - 1 + if vh <= 0 + return v:null + endif + let maxWidth = coc#math#min(get(a:config, 'maxWidth', &columns - 1), &columns - 1) + if maxWidth < 3 + return v:null + endif + let maxHeight = coc#math#min(get(a:config, 'maxHeight', vh), vh) + let width = coc#math#min(40, strdisplaywidth(title)) + 3 + for line in a:lines + let dw = max([1, strdisplaywidth(line)]) + let width = max([width, dw + 2]) + endfor + let width = coc#math#min(maxWidth, width) + let ch = coc#string#content_height(a:lines, width - 2) + let [lineIdx, colIdx] = coc#cursor#screen_pos() + " How much we should move left + let offsetX = coc#math#min(get(a:config, 'offsetX', 0), colIdx) + let showTop = 0 + let hb = vh - lineIdx -1 + if lineIdx > bh + 2 && (preferTop || (lineIdx > hb && hb < ch + bh)) + let showTop = 1 + endif + let height = coc#math#min(maxHeight, ch + bh, showTop ? lineIdx - 1 : hb) + if height <= bh + return v:null + endif + let col = - max([offsetX, colIdx - (&columns - 1 - width)]) + let row = showTop ? - height + bh : 1 + return { + \ 'row': row, + \ 'col': col, + \ 'width': width - 2, + \ 'height': height - bh + \ } +endfunction + +function! coc#dialog#change_border_hl(winid, hlgroup) abort + if !hlexists(a:hlgroup) + return + endif + if s:is_vim + if coc#float#valid(a:winid) + call popup_setoptions(a:winid, {'borderhighlight': repeat([a:hlgroup], 4)}) + redraw + endif + else + let winid = coc#float#get_related(a:winid, 'border') + if winid > 0 + call setwinvar(winid, '&winhl', 'Normal:'.a:hlgroup) + endif + endif +endfunction + +function! coc#dialog#change_title(winid, title) abort + if s:is_vim + if coc#float#valid(a:winid) + call popup_setoptions(a:winid, {'title': a:title}) + redraw + endif + else + let winid = coc#float#get_related(a:winid, 'border') + if winid > 0 + let bufnr = winbufnr(winid) + let line = getbufline(bufnr, 1)[0] + let top = strcharpart(line, 0, 1) + \.repeat('โ”€', strchars(line) - 2) + \.strcharpart(line, strchars(line) - 1, 1) + if !empty(a:title) + let top = coc#string#compose(top, 1, a:title.' ') + endif + call nvim_buf_set_lines(bufnr, 0, 1, v:false, [top]) + endif + endif +endfunction + +function! coc#dialog#change_input_value(winid, bufnr, value) abort + if !coc#float#valid(a:winid) + return + endif + if win_getid() != a:winid + call win_gotoid(a:winid) + endif + if s:is_vim + " call timer_start(3000, { -> term_sendkeys(bufnr, "\\abcd")}) + call term_sendkeys(a:bufnr, "\\".a:value) + else + let mode = mode() + if mode ==# 'i' + call feedkeys("\", 'int') + else + call feedkeys("\A", 'int') + endif + " Use complete to replace text before + let saved_completeopt = &completeopt + if saved_completeopt =~ 'menuone' + noa set completeopt=menu + endif + noa call complete(1, [{ 'empty': 1, 'word': a:value }]) + if has('nvim-0.6.1') + call feedkeys("\\", 'in') + else + let g:coc_disable_space_report = 1 + call feedkeys("\\", 'in') + endif + execute 'noa set completeopt='.saved_completeopt + endif +endfunction + +function! coc#dialog#change_loading(winid, loading) abort + if coc#float#valid(a:winid) + let winid = coc#float#get_related(a:winid, 'loading') + if !a:loading && winid > 0 + call coc#float#close(winid) + endif + if a:loading && winid == 0 + let bufnr = s:create_loading_buf() + if s:is_vim + let pos = popup_getpos(a:winid) + let winid = popup_create(bufnr, { + \ 'line': pos['line'] + 1, + \ 'col': pos['col'] + pos['width'] - 4, + \ 'maxheight': 1, + \ 'maxwidth': 3, + \ 'zindex': 999, + \ 'highlight': get(popup_getoptions(a:winid), 'highlight', 'CocFloating') + \ }) + else + let pos = nvim_win_get_position(a:winid) + let width = nvim_win_get_width(a:winid) + let opts = { + \ 'relative': 'editor', + \ 'row': pos[0], + \ 'col': pos[1] + width - 3, + \ 'focusable': v:false, + \ 'width': 3, + \ 'height': 1, + \ 'style': 'minimal', + \ } + if has('nvim-0.5.1') + let opts['zindex'] = 900 + endif + let winid = nvim_open_win(bufnr, v:false, opts) + call setwinvar(winid, '&winhl', getwinvar(a:winid, '&winhl')) + endif + call setwinvar(winid, 'kind', 'loading') + call setbufvar(bufnr, 'target_winid', a:winid) + call setbufvar(bufnr, 'popup', winid) + call coc#float#add_related(winid, a:winid) + endif + endif +endfunction + +" Update list with new lines and highlights +function! coc#dialog#update_list(winid, bufnr, lines, highlights) abort + if coc#window#tabnr(a:winid) == tabpagenr() + if getwinvar(a:winid, 'auto_height', 0) + let row = coc#float#get_row(a:winid) + let width = getwinvar(a:winid, 'core_width', 80) + let height = s:get_height(a:lines, width) + let height = min([getwinvar(a:winid, 'max_height', 10), height, &lines - &cmdheight - 1 - row]) + let curr = s:is_vim ? popup_getpos(a:winid)['core_height'] : nvim_win_get_height(a:winid) + let delta = height - curr + if delta != 0 + call coc#float#change_height(a:winid, delta) + endif + endif + call coc#compat#buf_set_lines(a:bufnr, 0, -1, a:lines) + call coc#highlight#add_highlights(a:winid, [], a:highlights) + if s:is_vim + let target = getwinvar(a:winid, 'target_winid', -1) + if target != -1 + call coc#dialog#check_scroll_vim(target) + endif + call win_execute(a:winid, 'exe 1') + endif + endif +endfunction + +" Fix width of prompt window same as list window on scrollbar change +function! coc#dialog#check_scroll_vim(winid) abort + if s:is_vim && coc#float#valid(a:winid) + let winid = coc#float#get_related(a:winid, 'list') + if winid + redraw + let pos = popup_getpos(winid) + let width = pos['width'] + (pos['scrollbar'] ? 1 : 0) + if width != popup_getpos(a:winid)['width'] + call popup_move(a:winid, { + \ 'minwidth': width - 2, + \ 'maxwidth': width - 2, + \ }) + endif + endif + endif +endfunction + +function! coc#dialog#set_cursor(winid, bufnr, line) abort + if s:is_vim + call coc#compat#execute(a:winid, 'exe '.max([a:line, 1]), 'silent!') + call popup_setoptions(a:winid, {'cursorline' : 1}) + call popup_setoptions(a:winid, {'cursorline' : 0}) + else + call nvim_win_set_cursor(a:winid, [max([a:line, 1]), 0]) + endif + call coc#dialog#place_sign(a:bufnr, a:line) +endfunction + +function! coc#dialog#place_sign(bufnr, line) abort + call sign_unplace(s:sign_group, { 'buffer': a:bufnr }) + if a:line > 0 + call sign_place(6, s:sign_group, 'CocCurrentLine', a:bufnr, {'lnum': a:line}) + endif +endfunction + +function! s:create_prompt_win(bufnr, title, default, opts) abort + let config = s:get_prompt_dimension(a:title, a:default, a:opts) + return coc#float#create_float_win(0, a:bufnr, extend(config, { + \ 'style': 'minimal', + \ 'border': get(a:opts, 'border', [1,1,1,1]), + \ 'rounded': get(a:opts, 'rounded', 1), + \ 'prompt': 1, + \ 'title': a:title, + \ 'lines': s:is_vim ? v:null : [a:default], + \ 'highlight': get(a:opts, 'highlight', 'CocFloating'), + \ 'borderhighlight': [get(a:opts, 'borderhighlight', 'CocFloating')], + \ })) +endfunction + +" Could be center(with optional marginTop) or cursor +function! s:get_prompt_dimension(title, default, opts) abort + let relative = get(a:opts, 'position', 'cursor') ==# 'cursor' ? 'cursor' : 'editor' + let curr = win_screenpos(winnr())[1] + wincol() - 2 + let minWidth = get(a:opts, 'minWidth', s:prompt_win_width) + let width = min([max([strwidth(a:default) + 2, strwidth(a:title) + 2, minWidth]), &columns - 2]) + if get(a:opts, 'maxWidth', 0) + let width = min([width, a:opts['maxWidth']]) + endif + if relative ==# 'cursor' + let [lineIdx, colIdx] = coc#cursor#screen_pos() + if width == &columns - 2 + let col = 0 - curr + else + let col = curr + width <= &columns - 2 ? 0 : curr + width - &columns + 2 + endif + let config = { + \ 'row': lineIdx == 0 ? 1 : 0, + \ 'col': colIdx == 0 ? 0 : col - 1, + \ } + else + let marginTop = get(a:opts, 'marginTop', v:null) + if marginTop is v:null + let row = (&lines - &cmdheight - 2) / 2 + else + let row = marginTop < 2 ? 1 : min([marginTop, &columns - &cmdheight]) + endif + let config = { + \ 'col': float2nr((&columns - width) / 2), + \ 'row': row - s:is_vim, + \ } + endif + return extend(config, {'relative': relative, 'width': width, 'height': 1}) +endfunction + +function! s:min_btns_width(buttons) abort + if empty(a:buttons) + return 0 + endif + let minwidth = len(a:buttons)*3 - 1 + for txt in a:buttons + let minwidth = minwidth + strdisplaywidth(txt) + endfor + return minwidth +endfunction + +" Close windows that should auto hide +function! s:close_auto_hide_wins(...) abort + let winids = coc#float#get_float_win_list() + let except = get(a:, 1, 0) + for id in winids + if except && id == except + continue + endif + if getwinvar(id, 'autohide', 0) + call coc#float#close(id) + endif + endfor +endfunction + +function! s:create_loading_buf() abort + let bufnr = coc#float#create_buf(0) + call s:change_loading_buf(bufnr, 0) + return bufnr +endfunction + +function! s:get_height(lines, width) abort + let height = 0 + for line in a:lines + let height += float2nr(strdisplaywidth(line) / a:width) + 1 + endfor + return max([1, height]) +endfunction + +function! s:change_loading_buf(bufnr, idx) abort + if bufloaded(a:bufnr) + let target = getbufvar(a:bufnr, 'target_winid', v:null) + if !empty(target) && !coc#float#valid(target) + call coc#float#close(getbufvar(a:bufnr, 'popup')) + return + endif + let line = get(s:frames, a:idx, ' ') + call setbufline(a:bufnr, 1, line) + call coc#highlight#add_highlight(a:bufnr, -1, 'CocNotificationProgress', 0, 0, -1) + let idx = a:idx == len(s:frames) - 1 ? 0 : a:idx + 1 + call timer_start(100, { -> s:change_loading_buf(a:bufnr, idx)}) + endif +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/dict.vim b/pack/acp/opt/coc.nvim/autoload/coc/dict.vim new file mode 100644 index 0000000..00c494b --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/dict.vim @@ -0,0 +1,32 @@ +scriptencoding utf-8 + +function! coc#dict#equal(one, two) abort + for key in keys(a:one) + if a:one[key] != a:two[key] + return 0 + endif + endfor + return 1 +endfunction + +" Return new dict with keys removed +function! coc#dict#omit(dict, keys) abort + let res = {} + for key in keys(a:dict) + if index(a:keys, key) == -1 + let res[key] = a:dict[key] + endif + endfor + return res +endfunction + +" Return new dict with keys only +function! coc#dict#pick(dict, keys) abort + let res = {} + for key in keys(a:dict) + if index(a:keys, key) != -1 + let res[key] = a:dict[key] + endif + endfor + return res +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/float.vim b/pack/acp/opt/coc.nvim/autoload/coc/float.vim new file mode 100644 index 0000000..5d8b2be --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/float.vim @@ -0,0 +1,1459 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:borderchars = get(g:, 'coc_borderchars', ['โ”€', 'โ”‚', 'โ”€', 'โ”‚', 'โ”Œ', 'โ”', 'โ”˜', 'โ””']) +let s:rounded_borderchars = s:borderchars[0:3] + ['โ•ญ', 'โ•ฎ', 'โ•ฏ', 'โ•ฐ'] +let s:borderjoinchars = get(g:, 'coc_border_joinchars', ['โ”ฌ', 'โ”ค', 'โ”ด', 'โ”œ']) +let s:popup_list_api = exists('*popup_list') +" Popup ids, used when popup_list() doesn't exist +let s:popup_list = [] +let s:pad_bufnr = -1 + +" Check visible float/popup exists. +function! coc#float#has_float(...) abort + return len(coc#float#get_float_win_list(get(a:, 1, 0))) > 0 +endfunction + +function! coc#float#close_all(...) abort + let winids = coc#float#get_float_win_list(get(a:, 1, 0)) + for id in winids + try + call coc#float#close(id) + catch /E5555:/ + " ignore + endtry + endfor + return '' +endfunction + +function! coc#float#jump() abort + if has('nvim') + let winids = coc#float#get_float_win_list() + if !empty(winids) + call win_gotoid(winids[0]) + endif + endif +endfunction + +function! coc#float#valid(winid) abort + if a:winid <= 0 + return 0 + endif + if !s:is_vim + if !nvim_win_is_valid(a:winid) + return 0 + endif + return !empty(nvim_win_get_config(a:winid)['relative']) + endif + try + return !empty(popup_getpos(a:winid)) + catch /^Vim\%((\a\+)\)\=:E993/ + " not a popup window + return 0 + endtry +endfunction + +function! coc#float#get_height(winid) abort + if !s:is_vim + let borderwin = coc#float#get_related(a:winid, 'border') + if borderwin + return nvim_win_get_height(borderwin) + endif + return nvim_win_get_height(a:winid) + endif + return get(popup_getpos(a:winid), 'height', 0) +endfunction + +function! coc#float#change_height(winid, delta) abort + if s:is_vim + let curr = get(popup_getpos(a:winid), 'core_height', v:null) + if curr isnot v:null + call popup_move(a:winid, { + \ 'maxheight': max([1, curr + a:delta]), + \ 'minheight': max([1, curr + a:delta]), + \ }) + endif + else + let winids = copy(coc#window#get_var(a:winid, 'related', [])) + call filter(winids, 'index(["border","pad","scrollbar"],coc#window#get_var(v:val,"kind","")) >= 0') + call add(winids, a:winid) + for winid in winids + if coc#window#get_var(winid, 'kind', '') ==# 'border' + let bufnr = winbufnr(winid) + if a:delta > 0 + call appendbufline(bufnr, 1, repeat(getbufline(bufnr, 2), a:delta)) + else + call deletebufline(bufnr, 2, 2 - a:delta - 1) + endif + endif + let height = nvim_win_get_height(winid) + call nvim_win_set_height(winid, max([1, height + a:delta])) + endfor + endif +endfunction + +" create or config float window, returns [winid, bufnr], config including: +" - relative: could be 'editor' 'cursor' +" - row: line count relative to editor/cursor, nagetive number means abover cursor. +" - col: column count relative to editor/cursor, nagetive number means left of cursor. +" - width: content width without border and title. +" - height: content height without border and title. +" - lines: (optional) lines to insert, default to v:null. +" - title: (optional) title. +" - border: (optional) border as number list, like [1, 1, 1 ,1]. +" - cursorline: (optional) enable cursorline when is 1. +" - autohide: (optional) window should be closed on CursorMoved when is 1. +" - highlight: (optional) highlight of window, default to 'CocFloating' +" - borderhighlight: (optional) should be array or string for border highlights, +" highlight all borders with first value. +" - close: (optional) show close button when is 1. +" - highlights: (optional) highlight items. +" - buttons: (optional) array of button text for create buttons at bottom. +" - codes: (optional) list of CodeBlock. +" - winblend: (optional) winblend option for float window, neovim only. +" - shadow: (optional) use shadow as border style, neovim only. +" - focusable: (optional) neovim only, default to true. +" - scrollinside: (optional) neovim only, create scrollbar inside window. +" - rounded: (optional) use rounded borderchars, ignored when borderchars exists. +" - zindex: (optional) zindex of window, default 50. +" - borderchars: (optional) borderchars, should be length of 8 +" - nopad: (optional) not add pad when 1 +" - index: (optional) line index +function! coc#float#create_float_win(winid, bufnr, config) abort + let lines = get(a:config, 'lines', v:null) + let bufnr = a:bufnr + try + let bufnr = coc#float#create_buf(a:bufnr, lines, 'hide') + catch /E523:/ + " happens when using getchar() #3921 + return [] + endtry + let lnum = max([1, get(a:config, 'index', 0) + 1]) + let zindex = get(a:config, 'zindex', 50) + " use exists + if a:winid && coc#float#valid(a:winid) + if s:is_vim + let [line, col] = s:popup_position(a:config) + let opts = { + \ 'firstline': 1, + \ 'line': line, + \ 'col': col, + \ 'minwidth': a:config['width'], + \ 'minheight': a:config['height'], + \ 'maxwidth': a:config['width'], + \ 'maxheight': a:config['height'], + \ 'title': get(a:config, 'title', ''), + \ 'highlight': get(a:config, 'highlight', 'CocFloating'), + \ 'borderhighlight': [s:get_borderhighlight(a:config)], + \ } + if !s:empty_border(get(a:config, 'border', [])) + let opts['border'] = a:config['border'] + endif + call popup_setoptions(a:winid, opts) + call win_execute(a:winid, 'exe '.lnum) + call coc#float#vim_buttons(a:winid, a:config) + call s:add_highlights(a:winid, a:config, 0) + return [a:winid, winbufnr(a:winid)] + else + let config = s:convert_config_nvim(a:config, 0) + let hlgroup = get(a:config, 'highlight', 'CocFloating') + let current = getwinvar(a:winid, '&winhl', '') + let winhl = coc#util#merge_winhl(current, [['Normal', hlgroup], ['FoldColumn', hlgroup]]) + if winhl !=# current + call setwinvar(a:winid, '&winhl', winhl) + endif + call nvim_win_set_buf(a:winid, bufnr) + call nvim_win_set_config(a:winid, config) + call nvim_win_set_cursor(a:winid, [lnum, 0]) + call coc#float#nvim_create_related(a:winid, config, a:config) + call s:add_highlights(a:winid, a:config, 0) + return [a:winid, bufnr] + endif + endif + let winid = 0 + if s:is_vim + let [line, col] = s:popup_position(a:config) + let title = get(a:config, 'title', '') + let buttons = get(a:config, 'buttons', []) + let hlgroup = get(a:config, 'highlight', 'CocFloating') + let nopad = get(a:config, 'nopad', 0) + let border = s:empty_border(get(a:config, 'border', [])) ? [0, 0, 0, 0] : a:config['border'] + let opts = { + \ 'title': title, + \ 'line': line, + \ 'col': col, + \ 'fixed': 1, + \ 'padding': [0, !nopad && !border[1], 0, !nopad && !border[3]], + \ 'borderchars': s:get_borderchars(a:config), + \ 'highlight': hlgroup, + \ 'minwidth': a:config['width'], + \ 'minheight': a:config['height'], + \ 'maxwidth': a:config['width'], + \ 'maxheight': a:config['height'], + \ 'close': get(a:config, 'close', 0) ? 'button' : 'none', + \ 'border': border, + \ 'zindex': zindex, + \ 'callback': { -> coc#float#on_close(winid)}, + \ 'borderhighlight': [s:get_borderhighlight(a:config)], + \ 'scrollbarhighlight': 'CocFloatSbar', + \ 'thumbhighlight': 'CocFloatThumb', + \ } + let winid = popup_create(bufnr, opts) + if !s:popup_list_api + call add(s:popup_list, winid) + endif + call s:set_float_defaults(winid, a:config) + call win_execute(winid, 'exe '.lnum) + call coc#float#vim_buttons(winid, a:config) + else + let config = s:convert_config_nvim(a:config, 1) + noa let winid = nvim_open_win(bufnr, 0, config) + if winid is 0 + return [] + endif + " cursorline highlight not work on old neovim + call s:set_float_defaults(winid, a:config) + call nvim_win_set_cursor(winid, [lnum, 0]) + call coc#float#nvim_create_related(winid, config, a:config) + call coc#float#nvim_set_winblend(winid, get(a:config, 'winblend', v:null)) + endif + call s:add_highlights(winid, a:config, 1) + let g:coc_last_float_win = winid + call coc#util#do_autocmd('CocOpenFloat') + return [winid, bufnr] +endfunction + +function! coc#float#nvim_create_related(winid, config, opts) abort + let related = getwinvar(a:winid, 'related', []) + let exists = !empty(related) + let border = get(a:opts, 'border', []) + let borderhighlight = s:get_borderhighlight(a:opts) + let buttons = get(a:opts, 'buttons', []) + let pad = !get(a:opts, 'nopad', 0) && (empty(border) || get(border, 1, 0) == 0) + let shadow = get(a:opts, 'shadow', 0) + if get(a:opts, 'close', 0) + call coc#float#nvim_close_btn(a:config, a:winid, border, borderhighlight, related) + elseif exists + call coc#float#close_related(a:winid, 'close') + endif + if !empty(buttons) + call coc#float#nvim_buttons(a:config, a:winid, buttons, get(a:opts, 'getchar', 0), get(border, 2, 0), pad, borderhighlight, shadow, related) + elseif exists + call coc#float#close_related(a:winid, 'buttons') + endif + if !s:empty_border(border) + let borderchars = s:get_borderchars(a:opts) + call coc#float#nvim_border_win(a:config, borderchars, a:winid, border, get(a:opts, 'title', ''), !empty(buttons), borderhighlight, shadow, related) + elseif exists + call coc#float#close_related(a:winid, 'border') + endif + " Check right border + if pad + call coc#float#nvim_right_pad(a:config, a:winid, shadow, related) + elseif exists + call coc#float#close_related(a:winid, 'pad') + endif + call setwinvar(a:winid, 'related', filter(related, 'nvim_win_is_valid(v:val)')) +endfunction + +" border window for neovim, content config with border +function! coc#float#nvim_border_win(config, borderchars, winid, border, title, hasbtn, hlgroup, shadow, related) abort + let winid = coc#float#get_related(a:winid, 'border') + let row = a:border[0] ? a:config['row'] - 1 : a:config['row'] + let col = a:border[3] ? a:config['col'] - 1 : a:config['col'] + let width = a:config['width'] + a:border[1] + a:border[3] + let height = a:config['height'] + a:border[0] + a:border[2] + (a:hasbtn ? 2 : 0) + let lines = coc#float#create_border_lines(a:border, a:borderchars, a:title, a:config['width'], a:config['height'], a:hasbtn) + let bufnr = winid ? winbufnr(winid) : 0 + let bufnr = coc#float#create_buf(bufnr, lines) + let opt = { + \ 'relative': a:config['relative'], + \ 'width': width, + \ 'height': height, + \ 'row': row, + \ 'col': col, + \ 'focusable': v:false, + \ 'style': 'minimal', + \ } + if has_key(a:config, 'zindex') + let opt['zindex'] = a:config['zindex'] + endif + if has('nvim-0.5.0') && a:shadow && !a:hasbtn && a:border[2] + let opt['border'] = 'shadow' + endif + if winid + call nvim_win_set_config(winid, opt) + call setwinvar(winid, '&winhl', 'Normal:'.a:hlgroup) + else + noa let winid = nvim_open_win(bufnr, 0, opt) + call setwinvar(winid, 'delta', -1) + let winhl = 'Normal:'.a:hlgroup + call s:nvim_add_related(winid, a:winid, 'border', winhl, a:related) + endif +endfunction + +" neovim only +function! coc#float#nvim_close_btn(config, winid, border, hlgroup, related) abort + let winid = coc#float#get_related(a:winid, 'close') + let config = { + \ 'relative': a:config['relative'], + \ 'width': 1, + \ 'height': 1, + \ 'row': get(a:border, 0, 0) ? a:config['row'] - 1 : a:config['row'], + \ 'col': a:config['col'] + a:config['width'], + \ 'focusable': v:true, + \ 'style': 'minimal', + \ } + if has_key(a:config, 'zindex') + let config['zindex'] = a:config['zindex'] + 2 + endif + if winid + call nvim_win_set_config(winid, coc#dict#pick(config, ['relative', 'row', 'col'])) + else + let bufnr = coc#float#create_buf(0, ['X']) + noa let winid = nvim_open_win(bufnr, 0, config) + let winhl = 'Normal:'.a:hlgroup + call setwinvar(winid, 'delta', -1) + call s:nvim_add_related(winid, a:winid, 'close', winhl, a:related) + endif +endfunction + +" Create padding window by config of current window & border config +function! coc#float#nvim_right_pad(config, winid, shadow, related) abort + let winid = coc#float#get_related(a:winid, 'pad') + let config = { + \ 'relative': a:config['relative'], + \ 'width': 1, + \ 'height': a:config['height'], + \ 'row': a:config['row'], + \ 'col': a:config['col'] + a:config['width'], + \ 'focusable': v:false, + \ 'style': 'minimal', + \ } + if has_key(a:config, 'zindex') + let config['zindex'] = a:config['zindex'] + 1 + endif + if has('nvim-0.5.0') && a:shadow + let config['border'] = 'shadow' + endif + if winid && nvim_win_is_valid(winid) + if has('nvim-0.5.0') + call nvim_win_set_config(winid, coc#dict#pick(config, ['relative', 'row', 'col'])) + call nvim_win_set_height(winid, config['height']) + return + endif + noa call nvim_win_close(winid, 1) + endif + let s:pad_bufnr = bufloaded(s:pad_bufnr) ? s:pad_bufnr : coc#float#create_buf(0, repeat([''], &lines), 'hide') + noa let winid = nvim_open_win(s:pad_bufnr, 0, config) + call s:nvim_add_related(winid, a:winid, 'pad', '', a:related) +endfunction + +" draw buttons window for window with config +function! coc#float#nvim_buttons(config, winid, buttons, getchar, borderbottom, pad, borderhighlight, shadow, related) abort + let winid = coc#float#get_related(a:winid, 'buttons') + let width = a:config['width'] + (a:pad ? 1 : 0) + let config = { + \ 'row': a:config['row'] + a:config['height'], + \ 'col': a:config['col'], + \ 'width': width, + \ 'height': 2 + (a:borderbottom ? 1 : 0), + \ 'relative': a:config['relative'], + \ 'focusable': 1, + \ 'style': 'minimal', + \ } + if has('nvim-0.5.1') + let config['zindex'] = 300 + if a:shadow + let config['border'] = 'shadow' + endif + endif + if winid + let bufnr = winbufnr(winid) + call s:create_btns_buffer(bufnr, width, a:buttons, a:borderbottom) + call nvim_win_set_config(winid, config) + else + let bufnr = s:create_btns_buffer(0, width, a:buttons, a:borderbottom) + noa let winid = nvim_open_win(bufnr, 0, config) + if winid + call s:nvim_add_related(winid, a:winid, 'buttons', '', a:related) + call s:nvim_create_keymap(winid) + endif + endif + if bufnr + call nvim_buf_clear_namespace(bufnr, -1, 0, -1) + call nvim_buf_add_highlight(bufnr, 1, a:borderhighlight, 0, 0, -1) + if a:borderbottom + call nvim_buf_add_highlight(bufnr, 1, a:borderhighlight, 2, 0, -1) + endif + let vcols = getbufvar(bufnr, 'vcols', []) + " TODO need change vol to col + for col in vcols + call nvim_buf_add_highlight(bufnr, 1, a:borderhighlight, 1, col, col + 3) + endfor + if a:getchar + let keys = s:gen_filter_keys(getbufline(bufnr, 2)[0]) + call matchaddpos('MoreMsg', map(keys[0], "[2,v:val]"), 99, -1, {'window': winid}) + call timer_start(10, {-> coc#float#getchar(winid, keys[1])}) + endif + endif +endfunction + +function! coc#float#getchar(winid, keys) abort + let ch = coc#prompt#getc() + let target = getwinvar(a:winid, 'target_winid', 0) + if ch ==# "\" + call coc#float#close(target) + return + endif + if ch ==# "\" + if getwinvar(v:mouse_winid, 'kind', '') ==# 'close' + call coc#float#close(target) + return + endif + if v:mouse_winid == a:winid && v:mouse_lnum == 2 + let vcols = getbufvar(winbufnr(a:winid), 'vcols', []) + let col = v:mouse_col - 1 + if index(vcols, col) < 0 + let filtered = filter(vcols, 'v:val < col') + call coc#rpc#notify('FloatBtnClick', [winbufnr(target), len(filtered)]) + call coc#float#close(target) + return + endif + endif + else + let idx = index(a:keys, ch) + if idx >= 0 + call coc#rpc#notify('FloatBtnClick', [winbufnr(target), idx]) + call coc#float#close(target) + return + endif + endif + call coc#float#getchar(a:winid, a:keys) +endfunction + +" Create or refresh scrollbar for winid +" Need called on create, config, buffer change, scrolled +function! coc#float#nvim_scrollbar(winid) abort + if s:is_vim + return + endif + let winids = nvim_tabpage_list_wins(nvim_get_current_tabpage()) + if index(winids, a:winid) == -1 + return + endif + let config = nvim_win_get_config(a:winid) + let [row, column] = nvim_win_get_position(a:winid) + let relative = 'editor' + if row == 0 && column == 0 + " fix bad value when ext_multigrid is enabled. https://github.com/neovim/neovim/issues/11935 + let [row, column] = [config.row, config.col] + let relative = config.relative + endif + let width = nvim_win_get_width(a:winid) + let height = nvim_win_get_height(a:winid) + let bufnr = winbufnr(a:winid) + let cw = getwinvar(a:winid, '&foldcolumn', 0) ? width - 1 : width + let ch = coc#float#content_height(bufnr, cw, getwinvar(a:winid, '&wrap')) + let closewin = coc#float#get_related(a:winid, 'close') + let border = getwinvar(a:winid, 'border', []) + let scrollinside = getwinvar(a:winid, 'scrollinside', 0) && get(border, 1, 0) + let winblend = getwinvar(a:winid, '&winblend', 0) + let move_down = closewin && !get(border, 0, 0) + let id = coc#float#get_related(a:winid, 'scrollbar') + if ch <= height || height <= 1 + " no scrollbar, remove exists + if id + call s:close_win(id, 1) + endif + return + endif + if move_down + let height = height - 1 + endif + call coc#float#close_related(a:winid, 'pad') + let sbuf = id ? winbufnr(id) : 0 + let sbuf = coc#float#create_buf(sbuf, repeat([' '], height)) + let opts = { + \ 'row': move_down ? row + 1 : row, + \ 'col': column + width - scrollinside, + \ 'relative': relative, + \ 'width': 1, + \ 'height': height, + \ 'focusable': v:false, + \ 'style': 'minimal', + \ } + if has_key(config, 'zindex') + let opts['zindex'] = config['zindex'] + 2 + endif + if has('nvim-0.5.0') && s:has_shadow(config) + let opts['border'] = 'shadow' + endif + if id + call nvim_win_set_config(id, opts) + else + noa let id = nvim_open_win(sbuf, 0 , opts) + if id == 0 + return + endif + if winblend + call setwinvar(id, '&winblend', winblend) + endif + call setwinvar(id, 'kind', 'scrollbar') + call setwinvar(id, 'target_winid', a:winid) + call coc#float#add_related(id, a:winid) + endif + if !scrollinside + call coc#float#nvim_scroll_adjust(a:winid) + endif + let thumb_height = max([1, float2nr(floor(height * (height + 0.0)/ch))]) + let wininfo = getwininfo(a:winid)[0] + let start = 0 + if wininfo['topline'] != 1 + " needed for correct getwininfo + let firstline = wininfo['topline'] + let lastline = s:nvim_get_botline(firstline, height, cw, bufnr) + let linecount = nvim_buf_line_count(winbufnr(a:winid)) + if lastline >= linecount + let start = height - thumb_height + else + let start = max([1, float2nr(round((height - thumb_height + 0.0)*(firstline - 1.0)/(ch - height)))]) + endif + endif + " add highlights + call nvim_buf_clear_namespace(sbuf, -1, 0, -1) + for idx in range(0, height - 1) + if idx >= start && idx < start + thumb_height + call nvim_buf_add_highlight(sbuf, -1, 'CocFloatThumb', idx, 0, 1) + else + call nvim_buf_add_highlight(sbuf, -1, 'CocFloatSbar', idx, 0, 1) + endif + endfor +endfunction + +function! coc#float#create_border_lines(border, borderchars, title, width, height, hasbtn) abort + let borderchars = a:borderchars + let list = [] + if a:border[0] + let top = (a:border[3] ? borderchars[4]: '') + \.repeat(borderchars[0], a:width) + \.(a:border[1] ? borderchars[5] : '') + if !empty(a:title) + let top = coc#string#compose(top, 1, a:title.' ') + endif + call add(list, top) + endif + let mid = (a:border[3] ? borderchars[3]: '') + \.repeat(' ', a:width) + \.(a:border[1] ? borderchars[1] : '') + call extend(list, repeat([mid], a:height + (a:hasbtn ? 2 : 0))) + if a:hasbtn + let list[len(list) - 2] = (a:border[3] ? s:borderjoinchars[3]: '') + \.repeat(' ', a:width) + \.(a:border[1] ? s:borderjoinchars[1] : '') + endif + if a:border[2] + let bot = (a:border[3] ? borderchars[7]: '') + \.repeat(borderchars[2], a:width) + \.(a:border[1] ? borderchars[6] : '') + call add(list, bot) + endif + return list +endfunction + +" Close float window by id +function! coc#float#close(winid, ...) abort + let noautocmd = get(a:, 1, 0) + call coc#float#close_related(a:winid) + call s:close_win(a:winid, noautocmd) + return 1 +endfunction + +" Get visible float windows +function! coc#float#get_float_win_list(...) abort + let res = [] + let list_all = get(a:, 1, 0) + if s:is_vim + if s:popup_list_api + return filter(popup_list(), 'popup_getpos(v:val)["visible"]'.(list_all ? '' : '&& getwinvar(v:val, "float", 0)')) + endif + return filter(s:popup_list, 's:popup_visible(v:val)') + else + let res = [] + for i in range(1, winnr('$')) + let id = win_getid(i) + let config = nvim_win_get_config(id) + if empty(config) || empty(config['relative']) + continue + endif + " ignore border & button window & others + if list_all == 0 && !getwinvar(id, 'float', 0) + continue + endif + call add(res, id) + endfor + return res + endif + return [] +endfunction + +function! coc#float#get_float_by_kind(kind) abort + if s:is_vim + if s:popup_list_api + return get(filter(popup_list(), 'popup_getpos(v:val)["visible"] && getwinvar(v:val, "kind", "") ==# "'.a:kind.'"'), 0, 0) + endif + return get(filter(s:popup_list, 's:popup_visible(v:val) && getwinvar(v:val, "kind", "") ==# "'.a:kind.'"'), 0, 0) + else + let res = [] + for i in range(1, winnr('$')) + let winid = win_getid(i) + let config = nvim_win_get_config(winid) + if !empty(config['relative']) && getwinvar(winid, 'kind', '') ==# a:kind + return winid + endif + endfor + endif + return 0 +endfunction + +" Check if a float window is scrollable +function! coc#float#scrollable(winid) abort + let bufnr = winbufnr(a:winid) + if bufnr == -1 + return 0 + endif + if s:is_vim + let pos = popup_getpos(a:winid) + if get(pos, 'scrollbar', 0) + return 1 + endif + let ch = coc#float#content_height(bufnr, pos['core_width'], getwinvar(a:winid, '&wrap')) + return ch > pos['core_height'] + else + let height = nvim_win_get_height(a:winid) + let width = nvim_win_get_width(a:winid) + if width > 1 && getwinvar(a:winid, '&foldcolumn', 0) + " since we use foldcolumn for left padding + let width = width - 1 + endif + let ch = coc#float#content_height(bufnr, width, getwinvar(a:winid, '&wrap')) + return ch > height + endif +endfunction + +function! coc#float#has_scroll() abort + let win_ids = filter(coc#float#get_float_win_list(), 'coc#float#scrollable(v:val)') + return !empty(win_ids) +endfunction + +function! coc#float#scroll(forward, ...) + if !has('nvim-0.4.0') && !has('patch-8.2.0750') + throw 'coc#float#scroll() requires nvim >= 0.4.0 or vim >= 8.2.0750' + endif + let amount = get(a:, 1, 0) + let winids = filter(coc#float#get_float_win_list(), 'coc#float#scrollable(v:val) && getwinvar(v:val,"kind","") !=# "pum"') + if empty(winids) + return mode() =~ '^i' || mode() ==# 'v' ? "" : "\" + endif + for winid in winids + call s:scroll_win(winid, a:forward, amount) + endfor + return mode() =~ '^i' || mode() ==# 'v' ? "" : "\" +endfunction + +function! coc#float#scroll_win(winid, forward, amount) abort + let opts = coc#float#get_options(a:winid) + let lines = getbufline(winbufnr(a:winid), 1, '$') + let maxfirst = s:max_firstline(lines, opts['height'], opts['width']) + let topline = opts['topline'] + let height = opts['height'] + let width = opts['width'] + let scrolloff = getwinvar(a:winid, '&scrolloff', 0) + if a:forward && topline >= maxfirst + return + endif + if !a:forward && topline == 1 + return + endif + if a:amount == 0 + let topline = s:get_topline(opts['topline'], lines, a:forward, height, width) + else + let topline = topline + (a:forward ? a:amount : - a:amount) + endif + let topline = a:forward ? min([maxfirst, topline]) : max([1, topline]) + let lnum = s:get_cursorline(topline, lines, scrolloff, width, height) + call s:win_setview(a:winid, topline, lnum) + let top = coc#float#get_options(a:winid)['topline'] + " not changed + if top == opts['topline'] + if a:forward + call s:win_setview(a:winid, topline + 1, lnum + 1) + else + call s:win_setview(a:winid, topline - 1, lnum - 1) + endif + endif +endfunction + +function! coc#float#content_height(bufnr, width, wrap) abort + if !bufloaded(a:bufnr) + return 0 + endif + if !a:wrap + return coc#compat#buf_line_count(a:bufnr) + endif + let lines = has('nvim') ? nvim_buf_get_lines(a:bufnr, 0, -1, 0) : getbufline(a:bufnr, 1, '$') + return coc#string#content_height(lines, a:width) +endfunction + +function! coc#float#nvim_refresh_scrollbar(winid) abort + let id = coc#float#get_related(a:winid, 'scrollbar') + if id && nvim_win_is_valid(id) + call coc#float#nvim_scrollbar(a:winid) + endif +endfunction + +function! coc#float#on_close(winid) abort + let winids = coc#float#get_float_win_list() + for winid in winids + let target = getwinvar(winid, 'target_winid', -1) + if target == a:winid + call coc#float#close(winid) + endif + endfor +endfunction + +" Close related windows, or specific kind +function! coc#float#close_related(winid, ...) abort + if !coc#float#valid(a:winid) + return + endif + let timer = coc#window#get_var(a:winid, 'timer', 0) + if timer + call timer_stop(timer) + endif + let kind = get(a:, 1, '') + let winids = coc#window#get_var(a:winid, 'related', []) + for id in winids + let curr = coc#window#get_var(id, 'kind', '') + if empty(kind) || curr ==# kind + if curr == 'list' + call coc#float#close(id, 1) + elseif s:is_vim + " vim doesn't throw + noa call popup_close(id) + else + silent! noa call nvim_win_close(id, 1) + endif + endif + endfor +endfunction + +" Close related windows if target window is not visible. +function! coc#float#check_related() abort + let invalids = [] + let ids = coc#float#get_float_win_list(1) + for id in ids + let target = getwinvar(id, 'target_winid', 0) + if target && index(ids, target) == -1 + call add(invalids, id) + endif + endfor + if s:is_vim && !s:popup_list_api + let s:popup_list = filter(ids, "index(invalids, v:val) == -1") + endif + for id in invalids + call coc#float#close(id) + endfor +endfunction + +" Show float window/popup for user confirm. +" Create buttons popup on vim +function! coc#float#vim_buttons(winid, config) abort + if !has('patch-8.2.0750') + return + endif + let related = getwinvar(a:winid, 'related', []) + let winid = coc#float#get_related(a:winid, 'buttons') + let btns = get(a:config, 'buttons', []) + if empty(btns) + if winid + call s:close_win(winid, 1) + " fix padding + let opts = popup_getoptions(a:winid) + let padding = get(opts, 'padding', v:null) + if !empty(padding) + let padding[2] = padding[2] - 2 + endif + call popup_setoptions(a:winid, {'padding': padding}) + endif + return + endif + let border = get(a:config, 'border', v:null) + if !winid + " adjusting popup padding + let opts = popup_getoptions(a:winid) + let padding = get(opts, 'padding', v:null) + if type(padding) == 7 + let padding = [0, 0, 2, 0] + elseif len(padding) == 0 + let padding = [1, 1, 3, 1] + else + let padding[2] = padding[2] + 2 + endif + call popup_setoptions(a:winid, {'padding': padding}) + endif + let borderhighlight = get(get(a:config, 'borderhighlight', []), 0, '') + let pos = popup_getpos(a:winid) + let bw = empty(border) ? 0 : get(border, 1, 0) + get(border, 3, 0) + let borderbottom = empty(border) ? 0 : get(border, 2, 0) + let borderleft = empty(border) ? 0 : get(border, 3, 0) + let width = pos['width'] - bw + get(pos, 'scrollbar', 0) + let bufnr = s:create_btns_buffer(winid ? winbufnr(winid): 0,width, btns, borderbottom) + let height = 2 + (borderbottom ? 1 : 0) + let keys = s:gen_filter_keys(getbufline(bufnr, 2)[0]) + let options = { + \ 'filter': {id, key -> coc#float#vim_filter(id, key, keys[1])}, + \ 'highlight': get(opts, 'highlight', 'CocFloating') + \ } + let config = { + \ 'line': pos['line'] + pos['height'] - height, + \ 'col': pos['col'] + borderleft, + \ 'minwidth': width, + \ 'minheight': height, + \ 'maxwidth': width, + \ 'maxheight': height, + \ } + if winid != 0 + call popup_move(winid, config) + call popup_setoptions(winid, options) + call win_execute(winid, 'call clearmatches()') + else + let options = extend({ + \ 'filtermode': 'nvi', + \ 'padding': [0, 0, 0, 0], + \ 'fixed': 1, + \ 'zindex': 99, + \ }, options) + call extend(options, config) + let winid = popup_create(bufnr, options) + if !s:popup_list_api + call add(s:popup_list, winid) + endif + endif + if winid != 0 + if !empty(borderhighlight) + call coc#highlight#add_highlight(bufnr, -1, borderhighlight, 0, 0, -1) + call coc#highlight#add_highlight(bufnr, -1, borderhighlight, 2, 0, -1) + call win_execute(winid, 'call matchadd("'.borderhighlight.'", "'.s:borderchars[1].'")') + endif + call setwinvar(winid, 'kind', 'buttons') + call setwinvar(winid, 'target_winid', a:winid) + call add(related, winid) + call setwinvar(a:winid, 'related', related) + call matchaddpos('MoreMsg', map(keys[0], "[2,v:val]"), 99, -1, {'window': winid}) + endif +endfunction + +function! coc#float#nvim_float_click() abort + let kind = getwinvar(win_getid(), 'kind', '') + if kind == 'buttons' + if line('.') != 2 + return + endif + let vw = strdisplaywidth(strpart(getline('.'), 0, col('.') - 1)) + let vcols = getbufvar(bufnr('%'), 'vcols', []) + if index(vcols, vw) >= 0 + return + endif + let idx = 0 + if !empty(vcols) + let filtered = filter(vcols, 'v:val < vw') + let idx = idx + len(filtered) + endif + let winid = win_getid() + let target = getwinvar(winid, 'target_winid', 0) + if target + call coc#rpc#notify('FloatBtnClick', [winbufnr(target), idx]) + call coc#float#close(target) + endif + elseif kind == 'close' + let target = getwinvar(win_getid(), 'target_winid', 0) + call coc#float#close(target) + endif +endfunction + +" Add mapping if necessary +function! coc#float#nvim_win_enter(winid) abort + let kind = getwinvar(a:winid, 'kind', '') + if kind == 'buttons' || kind == 'close' + if empty(maparg('', 'n')) + nnoremap :call coc#float#nvim_float_click() + endif + endif +endfunction + +function! coc#float#vim_filter(winid, key, keys) abort + let key = tolower(a:key) + let idx = index(a:keys, key) + let target = getwinvar(a:winid, 'target_winid', 0) + if target && idx >= 0 + call coc#rpc#notify('FloatBtnClick', [winbufnr(target), idx]) + call coc#float#close(target) + return 1 + endif + return 0 +endfunction + +function! coc#float#get_related(winid, kind, ...) abort + if coc#float#valid(a:winid) + for winid in coc#window#get_var(a:winid, 'related', []) + if coc#window#get_var(winid, 'kind', '') ==# a:kind + return winid + endif + endfor + endif + return get(a:, 1, 0) +endfunction + +function! coc#float#get_row(winid) abort + let winid = s:is_vim ? a:winid : coc#float#get_related(a:winid, 'border', a:winid) + if coc#float#valid(winid) + if s:is_vim + let pos = popup_getpos(winid) + return pos['line'] - 1 + endif + let pos = nvim_win_get_position(winid) + return pos[0] + endif +endfunction + +" Create temporarily buffer with optional lines and &bufhidden +function! coc#float#create_buf(bufnr, ...) abort + if a:bufnr > 0 && bufloaded(a:bufnr) + let bufnr = a:bufnr + else + if s:is_vim + noa let bufnr = bufadd('') + noa call bufload(bufnr) + call setbufvar(bufnr, '&buflisted', 0) + call setbufvar(bufnr, '&modeline', 0) + call setbufvar(bufnr, '&buftype', 'nofile') + call setbufvar(bufnr, '&swapfile', 0) + else + noa let bufnr = nvim_create_buf(v:false, v:true) + endif + let bufhidden = get(a:, 2, 'wipe') + call setbufvar(bufnr, '&bufhidden', bufhidden) + call setbufvar(bufnr, '&undolevels', -1) + " neovim's bug + call setbufvar(bufnr, '&modifiable', 1) + endif + let lines = get(a:, 1, v:null) + if type(lines) == v:t_list + if has('nvim') + call nvim_buf_set_lines(bufnr, 0, -1, v:false, lines) + else + silent noa call setbufline(bufnr, 1, lines) + silent noa call deletebufline(bufnr, len(lines) + 1, '$') + endif + endif + return bufnr +endfunction + +" Change border window & close window when scrollbar is shown. +function! coc#float#nvim_scroll_adjust(winid) abort + let winid = coc#float#get_related(a:winid, 'border') + if !winid + return + endif + let bufnr = winbufnr(winid) + let lines = nvim_buf_get_lines(bufnr, 0, -1, 0) + if len(lines) >= 2 + let cw = nvim_win_get_width(a:winid) + let width = nvim_win_get_width(winid) + if width - cw != 1 + (strcharpart(lines[1], 0, 1) ==# s:borderchars[3] ? 1 : 0) + return + endif + call nvim_win_set_width(winid, width + 1) + let lastline = len(lines) - 1 + for i in range(0, lastline) + let line = lines[i] + if i == 0 + let add = s:borderchars[0] + elseif i == lastline + let add = s:borderchars[2] + else + let add = ' ' + endif + let prev = strcharpart(line, 0, strchars(line) - 1) + let lines[i] = prev . add . coc#string#last_character(line) + endfor + call nvim_buf_set_lines(bufnr, 0, -1, 0, lines) + " Move right close button + if coc#window#get_var(a:winid, 'right', 0) == 0 + let id = coc#float#get_related(a:winid, 'close') + if id + let [row, col] = nvim_win_get_position(id) + call nvim_win_set_config(id, { + \ 'relative': 'editor', + \ 'row': row, + \ 'col': col + 1, + \ }) + endif + elseif has('nvim-0.6.0') + " Move winid and all related left by 1 + let winids = [a:winid] + coc#window#get_var(a:winid, 'related', []) + for winid in winids + if nvim_win_is_valid(winid) + if coc#window#get_var(winid, 'kind', '') != 'close' + let config = nvim_win_get_config(winid) + let [row, column] = [config.row, config.col] + call nvim_win_set_config(winid, { + \ 'row': row, + \ 'col': column - 1, + \ 'relative': 'editor', + \ }) + endif + endif + endfor + endif + endif +endfunction + +function! coc#float#nvim_set_winblend(winid, winblend) abort + if a:winblend is v:null + return + endif + call coc#window#set_var(a:winid, '&winblend', a:winblend) + for winid in coc#window#get_var(a:winid, 'related', []) + call coc#window#set_var(winid, '&winblend', a:winblend) + endfor +endfunction + +function! s:popup_visible(id) abort + let pos = popup_getpos(a:id) + if !empty(pos) && get(pos, 'visible', 0) + return 1 + endif + return 0 +endfunction + +function! s:convert_config_nvim(config, create) abort + let valids = ['relative', 'win', 'anchor', 'width', 'height', 'bufpos', 'col', 'row', 'focusable'] + let result = coc#dict#pick(a:config, valids) + let border = get(a:config, 'border', []) + if !s:empty_border(border) + if result['relative'] ==# 'cursor' && result['row'] < 0 + " move top when has bottom border + if get(border, 2, 0) + let result['row'] = result['row'] - 1 + endif + else + " move down when has top border + if get(border, 0, 0) && !get(a:config, 'prompt', 0) + let result['row'] = result['row'] + 1 + endif + endif + " move right when has left border + if get(border, 3, 0) + let result['col'] = result['col'] + 1 + endif + let result['width'] = float2nr(result['width'] + 1 - get(border,3, 0)) + else + let result['width'] = float2nr(result['width'] + (get(a:config, 'nopad', 0) ? 0 : 1)) + endif + if has('nvim-0.5.0') && get(a:config, 'shadow', 0) && a:create + if empty(get(a:config, 'buttons', v:null)) && empty(get(border, 2, 0)) + let result['border'] = 'shadow' + endif + endif + if has('nvim-0.5.1') + let result['zindex'] = get(a:config, 'zindex', 50) + endif + let result['height'] = float2nr(result['height']) + return result +endfunction + +function! s:create_btns_buffer(bufnr, width, buttons, borderbottom) abort + let n = len(a:buttons) + let spaces = a:width - n + 1 + let tw = 0 + for txt in a:buttons + let tw += strdisplaywidth(txt) + endfor + if spaces < tw + throw 'window is too small for buttons.' + endif + let ds = (spaces - tw)/n + let dl = ds/2 + let dr = ds%2 == 0 ? ds/2 : ds/2 + 1 + let btnline = '' + let idxes = [] + for idx in range(0, n - 1) + let txt = toupper(a:buttons[idx][0]).a:buttons[idx][1:] + let btnline .= repeat(' ', dl).txt.repeat(' ', dr) + if idx != n - 1 + call add(idxes, strdisplaywidth(btnline)) + let btnline .= s:borderchars[1] + endif + endfor + let lines = [repeat(s:borderchars[0], a:width), btnline] + if a:borderbottom + call add(lines, repeat(s:borderchars[0], a:width)) + endif + for idx in idxes + let lines[0] = strcharpart(lines[0], 0, idx).s:borderjoinchars[0].strcharpart(lines[0], idx + 1) + if a:borderbottom + let lines[2] = strcharpart(lines[0], 0, idx).s:borderjoinchars[2].strcharpart(lines[0], idx + 1) + endif + endfor + let bufnr = coc#float#create_buf(a:bufnr, lines) + call setbufvar(bufnr, 'vcols', idxes) + return bufnr +endfunction + +function! s:gen_filter_keys(line) abort + let cols = [] + let used = [] + let next = 1 + for idx in range(0, strchars(a:line) - 1) + let ch = strcharpart(a:line, idx, 1) + let nr = char2nr(ch) + if next + if (nr >= 65 && nr <= 90) || (nr >= 97 && nr <= 122) + let lc = tolower(ch) + if index(used, lc) < 0 && (!s:is_vim || empty(maparg(lc, 'n'))) + let col = len(strcharpart(a:line, 0, idx)) + 1 + call add(used, lc) + call add(cols, col) + let next = 0 + endif + endif + else + if ch == s:borderchars[1] + let next = 1 + endif + endif + endfor + return [cols, used] +endfunction + +function! s:close_win(winid, noautocmd) abort + if a:winid <= 0 + return + endif + " vim not throw for none exists winid + if s:is_vim + call popup_close(a:winid) + else + if nvim_win_is_valid(a:winid) + let prefix = a:noautocmd ? 'noa ': '' + exe prefix.'call nvim_win_close('.a:winid.', 1)' + endif + endif +endfunction + +function! s:nvim_create_keymap(winid) abort + let bufnr = winbufnr(a:winid) + call nvim_buf_set_keymap(bufnr, 'n', '', ':call coc#float#nvim_float_click()', { + \ 'silent': v:true, + \ 'nowait': v:true + \ }) +endfunction + +" getwininfo is buggy on neovim, use topline, width & height should for content +function! s:nvim_get_botline(topline, height, width, bufnr) abort + let lines = getbufline(a:bufnr, a:topline, a:topline + a:height - 1) + let botline = a:topline + let count = 0 + for i in range(0, len(lines) - 1) + let w = max([1, strdisplaywidth(lines[i])]) + let lh = float2nr(ceil(str2float(string(w))/a:width)) + let count = count + lh + let botline = a:topline + i + if count >= a:height + break + endif + endfor + return botline +endfunction + +" get popup position for vim8 based on config of neovim float window +function! s:popup_position(config) abort + let relative = get(a:config, 'relative', 'editor') + let border = get(a:config, 'border', [0, 0, 0, 0]) + let delta = get(border, 0, 0) + get(border, 2, 0) + if relative ==# 'cursor' + if a:config['row'] < 0 + let delta = - delta + elseif a:config['row'] == 0 + let delta = - get(border, 0, 0) + else + let delta = 0 + endif + return [s:popup_cursor(a:config['row'] + delta), s:popup_cursor(a:config['col'])] + endif + return [a:config['row'] + 1, a:config['col'] + 1] +endfunction + +function! coc#float#add_related(winid, target) abort + let arr = coc#window#get_var(a:target, 'related', []) + if index(arr, a:winid) >= 0 + return + endif + call add(arr, a:winid) + call coc#window#set_var(a:target, 'related', arr) +endfunction + +function! coc#float#get_wininfo(winid) abort + if !coc#float#valid(a:winid) + throw 'Not valid float window: '.a:winid + endif + if s:is_vim + let pos = popup_getpos(a:winid) + return {'topline': pos['firstline'], 'botline': pos['lastline']} + endif + let info = getwininfo(a:winid)[0] + return {'topline': info['topline'], 'botline': info['botline']} +endfunction + +function! s:popup_cursor(n) abort + if a:n == 0 + return 'cursor' + endif + if a:n < 0 + return 'cursor'.a:n + endif + return 'cursor+'.a:n +endfunction + +" max firstline of lines, height > 0, width > 0 +function! s:max_firstline(lines, height, width) abort + let max = len(a:lines) + let remain = a:height + for line in reverse(copy(a:lines)) + let w = max([1, strdisplaywidth(line)]) + let dh = float2nr(ceil(str2float(string(w))/a:width)) + if remain - dh < 0 + break + endif + let remain = remain - dh + let max = max - 1 + endfor + return min([len(a:lines), max + 1]) +endfunction + +" Get best lnum by topline +function! s:get_cursorline(topline, lines, scrolloff, width, height) abort + let lastline = len(a:lines) + if a:topline == lastline + return lastline + endif + let bottomline = a:topline + let used = 0 + for lnum in range(a:topline, lastline) + let w = max([1, strdisplaywidth(a:lines[lnum - 1])]) + let dh = float2nr(ceil(str2float(string(w))/a:width)) + if used + dh >= a:height || lnum == lastline + let bottomline = lnum + break + endif + let used += dh + endfor + let cursorline = a:topline + a:scrolloff + if cursorline + a:scrolloff > bottomline + " unable to satisfy scrolloff + let cursorline = (a:topline + bottomline)/2 + endif + return cursorline +endfunction + +" Get firstline for full scroll +function! s:get_topline(topline, lines, forward, height, width) abort + let used = 0 + let lnums = a:forward ? range(a:topline, len(a:lines)) : reverse(range(1, a:topline)) + let topline = a:forward ? len(a:lines) : 1 + for lnum in lnums + let w = max([1, strdisplaywidth(a:lines[lnum - 1])]) + let dh = float2nr(ceil(str2float(string(w))/a:width)) + if used + dh >= a:height + let topline = lnum + break + endif + let used += dh + endfor + if topline == a:topline + if a:forward + let topline = min([len(a:lines), topline + 1]) + else + let topline = max([1, topline - 1]) + endif + endif + return topline +endfunction + +" topline content_height content_width +function! coc#float#get_options(winid) abort + if has('nvim') + let width = nvim_win_get_width(a:winid) + if coc#window#get_var(a:winid, '&foldcolumn', 0) + let width = width - 1 + endif + let info = getwininfo(a:winid)[0] + return { + \ 'topline': info['topline'], + \ 'height': nvim_win_get_height(a:winid), + \ 'width': width + \ } + else + let pos = popup_getpos(a:winid) + return { + \ 'topline': pos['firstline'], + \ 'width': pos['core_width'], + \ 'height': pos['core_height'] + \ } + endif +endfunction + +function! s:win_setview(winid, topline, lnum) abort + if has('nvim') + call coc#compat#execute(a:winid, 'call winrestview({"lnum":'.a:lnum.',"topline":'.a:topline.'})') + call timer_start(10, { -> coc#float#nvim_refresh_scrollbar(a:winid) }) + else + call coc#compat#execute(a:winid, 'exe '.a:lnum) + call popup_setoptions(a:winid, { + \ 'firstline': a:topline, + \ }) + endif +endfunction + +function! s:set_float_defaults(winid, config) abort + if !s:is_vim + let hlgroup = get(a:config, 'highlight', 'CocFloating') + call setwinvar(a:winid, '&winhl', 'Normal:'.hlgroup.',FoldColumn:'.hlgroup) + call setwinvar(a:winid, 'border', get(a:config, 'border', [])) + call setwinvar(a:winid, 'scrollinside', get(a:config, 'scrollinside', 0)) + call setwinvar(a:winid, '&foldcolumn', s:nvim_get_foldcolumn(a:config)) + call setwinvar(a:winid, '&signcolumn', 'no') + call setwinvar(a:winid, '&cursorcolumn', 0) + else + call setwinvar(a:winid, '&foldcolumn', 0) + endif + if exists('&statuscolumn') + call setwinvar(a:winid, '&statuscolumn', '') + endif + if !s:is_vim || !has("patch-8.2.3100") + call setwinvar(a:winid, '&number', 0) + call setwinvar(a:winid, '&relativenumber', 0) + call setwinvar(a:winid, '&cursorline', 0) + endif + call setwinvar(a:winid, '&foldenable', 0) + call setwinvar(a:winid, '&colorcolumn', '') + call setwinvar(a:winid, '&spell', 0) + call setwinvar(a:winid, '&linebreak', 1) + call setwinvar(a:winid, '&conceallevel', 0) + call setwinvar(a:winid, '&list', 0) + call setwinvar(a:winid, '&wrap', !get(a:config, 'cursorline', 0)) + if s:is_vim || has('nvim-0.5.0') + call setwinvar(a:winid, '&scrolloff', 0) + endif + if has('nvim-0.6.0') || has("patch-8.1.2281") + call setwinvar(a:winid, '&showbreak', 'NONE') + endif + if exists('*win_execute') + call win_execute(a:winid, 'setl fillchars+=eob:\ ') + endif + if get(a:config, 'autohide', 0) + call setwinvar(a:winid, 'autohide', 1) + endif + call setwinvar(a:winid, 'float', 1) +endfunction + +function! s:nvim_add_related(winid, target, kind, winhl, related) abort + if a:winid <= 0 + return + endif + " minimal not work + if !has('nvim-0.4.3') + call setwinvar(a:winid, '&colorcolumn', '') + call setwinvar(a:winid, '&number', 0) + call setwinvar(a:winid, '&relativenumber', 0) + call setwinvar(a:winid, '&foldcolumn', 0) + call setwinvar(a:winid, '&signcolumn', 0) + call setwinvar(a:winid, '&list', 0) + endif + if exists('&statuscolumn') + call setwinvar(a:winid, '&statuscolumn', '') + endif + let winhl = empty(a:winhl) ? coc#window#get_var(a:target, '&winhl', '') : a:winhl + call setwinvar(a:winid, '&winhl', winhl) + call setwinvar(a:winid, 'target_winid', a:target) + call setwinvar(a:winid, 'kind', a:kind) + call add(a:related, a:winid) +endfunction + +function! s:nvim_get_foldcolumn(config) abort + let nopad = get(a:config, 'nopad', 0) + if nopad + return 0 + endif + let border = get(a:config, 'border', v:null) + if border is 1 || (type(border) == v:t_list && get(border, 3, 0) == 1) + return 0 + endif + return 1 +endfunction + +function! s:add_highlights(winid, config, create) abort + let codes = get(a:config, 'codes', []) + let highlights = get(a:config, 'highlights', []) + if empty(codes) && empty(highlights) && a:create + return + endif + let bgGroup = get(a:config, 'highlight', 'CocFloating') + for obj in codes + let hlGroup = get(obj, 'hlGroup', v:null) + if !empty(hlGroup) + let obj['hlGroup'] = coc#highlight#compose_hlgroup(hlGroup, bgGroup) + endif + endfor + call coc#highlight#add_highlights(a:winid, codes, highlights) +endfunction + +function! s:empty_border(border) abort + if empty(a:border) || empty(filter(copy(a:border), 'v:val != 0')) + return 1 + endif + return 0 +endfunction + +function! s:get_borderchars(config) abort + let borderchars = get(a:config, 'borderchars', []) + if !empty(borderchars) + return borderchars + endif + return get(a:config, 'rounded', 0) ? s:rounded_borderchars : s:borderchars +endfunction + +function! s:scroll_win(winid, forward, amount) abort + if s:is_vim + call coc#float#scroll_win(a:winid, a:forward, a:amount) + else + call timer_start(0, { -> coc#float#scroll_win(a:winid, a:forward, a:amount)}) + endif +endfunction + +function! s:get_borderhighlight(config) abort + let hlgroup = get(a:config, 'highlight', 'CocFloating') + let borderhighlight = get(a:config, 'borderhighlight', v:null) + if empty(borderhighlight) + return hlgroup + endif + let highlight = type(borderhighlight) == 3 ? borderhighlight[0] : borderhighlight + return coc#highlight#compose_hlgroup(highlight, hlgroup) +endfunction + +function! s:has_shadow(config) abort + let border = get(a:config, 'border', []) + let filtered = filter(copy(border), 'type(v:val) == 3 && get(v:val, 1, "") ==# "FloatShadow"') + return len(filtered) > 0 +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/helper.vim b/pack/acp/opt/coc.nvim/autoload/coc/helper.vim new file mode 100644 index 0000000..8bdc9b8 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/helper.vim @@ -0,0 +1,148 @@ +scriptencoding utf-8 +" Helper methods for viml + +function! coc#helper#get_charactor(line, col) abort + return strchars(strpart(a:line, 0, a:col - 1)) +endfunction + +function! coc#helper#last_character(line) abort + return strcharpart(a:line, strchars(a:line) - 1, 1) +endfunction + +function! coc#helper#obj_equal(one, two) abort + for key in keys(a:one) + if a:one[key] != a:two[key] + return 0 + endif + endfor + return 1 +endfunction + +" get change between two lines +function! coc#helper#str_diff(curr, previous, col) abort + let end = strpart(a:curr, a:col - 1) + let start = strpart(a:curr, 0, a:col -1) + let endOffset = 0 + let startOffset = 0 + let currLen = strchars(a:curr) + let prevLen = strchars(a:previous) + if len(end) + let endLen = strchars(end) + for i in range(min([prevLen, endLen])) + if strcharpart(end, endLen - 1 - i, 1) ==# strcharpart(a:previous, prevLen -1 -i, 1) + let endOffset = endOffset + 1 + else + break + endif + endfor + endif + let remain = endOffset == 0 ? a:previous : strcharpart(a:previous, 0, prevLen - endOffset) + if len(remain) + for i in range(min([strchars(remain), strchars(start)])) + if strcharpart(remain, i, 1) ==# strcharpart(start, i ,1) + let startOffset = startOffset + 1 + else + break + endif + endfor + endif + return { + \ 'start': startOffset, + \ 'end': prevLen - endOffset, + \ 'text': strcharpart(a:curr, startOffset, currLen - startOffset - endOffset) + \ } +endfunction + +function! coc#helper#str_apply(content, diff) abort + let totalLen = strchars(a:content) + let endLen = totalLen - a:diff['end'] + return strcharpart(a:content, 0, a:diff['start']).a:diff['text'].strcharpart(a:content, a:diff['end'], endLen) +endfunction + +" insert inserted to line at position, use ... when result is too long +" line should only contains character has strwidth equals 1 +function! coc#helper#str_compose(line, position, inserted) abort + let width = strwidth(a:line) + let text = a:inserted + let res = a:line + let need_truncate = a:position + strwidth(text) + 1 > width + if need_truncate + let remain = width - a:position - 3 + if remain < 2 + " use text for full line, use first & end of a:line, ignore position + let res = strcharpart(a:line, 0, 1) + let w = strwidth(res) + for i in range(strchars(text)) + let c = strcharpart(text, i, 1) + let a = strwidth(c) + if w + a <= width - 1 + let w = w + a + let res = res.c + endif + endfor + let res = res.strcharpart(a:line, w) + else + let res = strcharpart(a:line, 0, a:position) + let w = strwidth(res) + for i in range(strchars(text)) + let c = strcharpart(text, i, 1) + let a = strwidth(c) + if w + a <= width - 3 + let w = w + a + let res = res.c + endif + endfor + let res = res.'..' + let w = w + 2 + let res = res.strcharpart(a:line, w) + endif + else + let first = strcharpart(a:line, 0, a:position) + let res = first.text.strcharpart(a:line, a:position + strwidth(text)) + endif + return res +endfunction + +" Return new dict with keys removed +function! coc#helper#dict_omit(dict, keys) abort + let res = {} + for key in keys(a:dict) + if index(a:keys, key) == -1 + let res[key] = a:dict[key] + endif + endfor + return res +endfunction + +" Return new dict with keys only +function! coc#helper#dict_pick(dict, keys) abort + let res = {} + for key in keys(a:dict) + if index(a:keys, key) != -1 + let res[key] = a:dict[key] + endif + endfor + return res +endfunction + +" support for float values +function! coc#helper#min(first, ...) abort + let val = a:first + for i in range(0, len(a:000) - 1) + if a:000[i] < val + let val = a:000[i] + endif + endfor + return val +endfunction + +" support for float values +function! coc#helper#max(first, ...) abort + let val = a:first + for i in range(0, len(a:000) - 1) + if a:000[i] > val + let val = a:000[i] + endif + endfor + return val +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/highlight.vim b/pack/acp/opt/coc.nvim/autoload/coc/highlight.vim new file mode 100644 index 0000000..f506b3b --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/highlight.vim @@ -0,0 +1,811 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:nvim_50 = has('nvim-0.5.0') +let s:nvim_60 = has('nvim-0.6.0') +let s:clear_match_by_window = s:nvim_60 || s:is_vim +let s:set_extmark = has('nvim') && exists('*nvim_buf_set_extmark') +let s:namespace_map = {} +let s:ns_id = 1 +let s:diagnostic_hlgroups = ['CocErrorHighlight', 'CocWarningHighlight', 'CocInfoHighlight', 'CocHintHighlight', 'CocDeprecatedHighlight', 'CocUnusedHighlight'] +" Maximum count to highlight each time. +let g:coc_highlight_maximum_count = get(g:, 'coc_highlight_maximum_count', 100) +let s:term = &termguicolors == 0 && !has('gui_running') + +if has('nvim-0.5.0') && s:clear_match_by_window == 0 + try + call getmatches(0) + let s:clear_match_by_window = 1 + catch /^Vim\%((\a\+)\)\=:E118/ + " ignored + endtry +endif + +" Update buffer region by region. +function! coc#highlight#buffer_update(bufnr, key, highlights, ...) abort + if !bufloaded(a:bufnr) + return + endif + if empty(a:highlights) + call coc#highlight#clear_highlight(a:bufnr, a:key, 0, -1) + return + endif + let priority = get(a:, 1, v:null) + let changedtick = getbufvar(a:bufnr, 'changedtick', 0) + if type(get(a:, 2, v:null)) == 0 && changedtick > a:2 + return + endif + let hls = map(copy(a:highlights), "{'hlGroup':v:val[0],'lnum':v:val[1],'colStart':v:val[2],'colEnd':v:val[3],'combine':get(v:val,4,1),'start_incl':get(v:val,5,0),'end_incl':get(v:val,6,0)}") + if len(hls) <= g:coc_highlight_maximum_count + call coc#highlight#update_highlights(a:bufnr, a:key, hls, 0, -1, priority) + return + endif + let linecount = coc#compat#buf_line_count(a:bufnr) + let groups = s:group_hls(hls, linecount) + call s:update_highlights_timer(a:bufnr, changedtick, a:key, priority, groups, 0) +endfunction + +" Update highlights by check exists highlights. +" 0 based, end exclusive start and end +function! coc#highlight#update_highlights(bufnr, key, highlights, ...) abort + let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr + if !bufloaded(bufnr) + return + endif + let start = get(a:, 1, 0) + let end = get(a:, 2, -1) + if end == 0 + return + endif + let linecount = coc#compat#buf_line_count(a:bufnr) + if end >= linecount + let end = -1 + endif + if empty(a:highlights) + call coc#highlight#clear_highlight(bufnr, a:key, start, end) + return + endif + let priority = get(a:, 3, v:null) + let total = len(a:highlights) + " index list that exists with current highlights + let exists = [] + let ns = coc#highlight#create_namespace(a:key) + if has('nvim-0.5.0') || exists('*prop_list') + let endLnum = end < 0 ? linecount - 1 : end - 1 + let firstLnum = a:highlights[0]['lnum'] + if firstLnum > start + call coc#highlight#clear_highlight(bufnr, a:key, start, firstLnum) + let start = firstLnum + endif + let lastLnum = a:highlights[total - 1]['lnum'] + if lastLnum < endLnum + call coc#highlight#clear_highlight(bufnr, a:key, lastLnum + 1, endLnum + 1) + let endLnum = lastLnum + endif + let current = coc#highlight#get_highlights(bufnr, a:key, start, endLnum) + let currIndex = 0 + if !empty(current) + for [lnum, items] in s:to_group(current) + let indexes = [] + let currIndexes = range(0, len(items) - 1) + let removeIndexes = [] + while currIndex != total + let hi = a:highlights[currIndex] + if hi['lnum'] == lnum + let findIndex = -1 + for idx in currIndexes + let item = items[idx] + if hi['hlGroup'] ==# item[0] && hi['colStart'] == item[2] && hi['colEnd'] == item[3] + call add(indexes, currIndex) + let findIndex = idx + break + elseif item[2] > hi['colStart'] + break + endif + endfor + if findIndex != -1 + call filter(currIndexes, 'v:val != '.findIndex) + endif + elseif hi['lnum'] > lnum + break + endif + let currIndex = currIndex + 1 + endwhile + for idx in currIndexes + if s:is_vim + call prop_remove({'bufnr': bufnr, 'id': items[idx][4]}) + else + call nvim_buf_del_extmark(bufnr, ns, items[idx][4]) + endif + endfor + call extend(exists, indexes) + endfor + endif + else + call coc#highlight#clear_highlight(bufnr, a:key, start, end) + endif + let indexes = range(0, total - 1) + if !empty(exists) + let indexes = filter(indexes, 'index(exists, v:val) == -1') + endif + for idx in indexes + let hi = a:highlights[idx] + let opts = { + \ 'combine': get(hi, 'combine', 0), + \ 'start_incl': get(hi, 'start_incl', 0), + \ 'end_incl': get(hi, 'end_incl', 0), + \ } + if type(priority) == 0 + let opts['priority'] = s:get_priority(a:key, hi['hlGroup'], priority) + endif + call coc#highlight#add_highlight(bufnr, ns, hi['hlGroup'], hi['lnum'], hi['colStart'], hi['colEnd'], opts) + endfor +endfunction + +" Get list of highlights by range or all buffer. +" 0 based line, start_col and end_col +" 0 based start & end line, end inclusive. +function! coc#highlight#get_highlights(bufnr, key, ...) abort + if !bufloaded(a:bufnr) + return v:null + endif + if !has_key(s:namespace_map, a:key) + return [] + endif + let start = get(a:, 1, 0) + let end = get(a:, 2, -1) + if s:nvim_60 + return v:lua.require('coc.highlight').getHighlights(a:bufnr, a:key, start, end) + elseif s:nvim_50 + return luaeval( + \ 'require("coc.highlight").getHighlights(_A[1],_A[2],_A[3],_A[4])', + \ [a:bufnr, a:key, start, end] + \ ) + endif + let res = [] + let ns = s:namespace_map[a:key] + if exists('*prop_list') + let types = coc#api#get_types(ns) + if empty(types) + return res + endif + " Could filter by end_lnum and types + if has('patch-8.2.3652') + let endLnum = end == -1 ? -1 : end + 1 + for prop in prop_list(start + 1, {'bufnr': a:bufnr, 'types': types, 'end_lnum': endLnum}) + if prop['start'] == 0 || prop['end'] == 0 + " multi line textprop are not supported, simply ignore it + continue + endif + let startCol = prop['col'] - 1 + let endCol = startCol + prop['length'] + call add(res, [s:prop_type_hlgroup(prop['type']), prop['lnum'] - 1, startCol, endCol, prop['id']]) + endfor + else + if end == -1 + let end = coc#compat#buf_line_count(a:bufnr) + else + let end = end + 1 + endif + for line in range(start + 1, end) + for prop in prop_list(line, {'bufnr': a:bufnr}) + if index(types, prop['type']) == -1 || prop['start'] == 0 || prop['end'] == 0 + " multi line textprop are not supported, simply ignore it + continue + endif + let startCol = prop['col'] - 1 + let endCol = startCol + prop['length'] + call add(res, [s:prop_type_hlgroup(prop['type']), line - 1, startCol, endCol, prop['id']]) + endfor + endfor + endif + else + throw 'Get highlights requires neovim 0.5.0 or vim support prop_list' + endif + return res +endfunction + +" Add multiple highlights to buffer. +" type HighlightItem = [hlGroup, lnum, colStart, colEnd, combine?, start_incl?, end_incl?] +function! coc#highlight#set(bufnr, key, highlights, priority) abort + if !bufloaded(a:bufnr) + return + endif + let ns = coc#highlight#create_namespace(a:key) + let g:c = 1 + if s:nvim_60 + call v:lua.require('coc.highlight').set(a:bufnr, ns, a:highlights, a:priority) + elseif s:nvim_50 + call luaeval( + \ 'require("coc.highlight").set(_A[1],_A[2],_A[3],_A[4])', + \ [a:bufnr, ns, a:highlights, a:priority] + \ ) + else + if len(a:highlights) > g:coc_highlight_maximum_count + call s:add_highlights_timer(a:bufnr, ns, a:highlights, a:priority) + else + call s:add_highlights(a:bufnr, ns, a:highlights, a:priority) + endif + endif +endfunction + +" Clear highlights by 0 based line numbers. +function! coc#highlight#clear(bufnr, key, lnums) abort + if !bufloaded(a:bufnr) || empty(a:lnums) + return + endif + let ns = coc#highlight#create_namespace(a:key) + for lnum in a:lnums + if has('nvim') + call nvim_buf_clear_namespace(a:bufnr, ns, lnum, lnum + 1) + else + call coc#api#exec('buf_clear_namespace', [a:bufnr, ns, lnum, lnum + 1]) + endif + endfor + " clear highlights in invalid line. + if has('nvim') + let linecount = nvim_buf_line_count(a:bufnr) + call nvim_buf_clear_namespace(a:bufnr, ns, linecount, -1) + endif +endfunction + +function! coc#highlight#del_markers(bufnr, key, ids) abort + if !bufloaded(a:bufnr) + return + endif + let ns = coc#highlight#create_namespace(a:key) + for id in a:ids + if s:is_vim + call prop_remove({'bufnr': a:bufnr, 'id': id}) + else + call nvim_buf_del_extmark(a:bufnr, ns, id) + endif + endfor +endfunction + +" highlight LSP range, opts contains 'combine' 'priority' 'start_incl' 'end_incl' +function! coc#highlight#ranges(bufnr, key, hlGroup, ranges, ...) abort + let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr + if !bufloaded(bufnr) || !exists('*getbufline') + return + endif + let opts = get(a:, 1, {}) + let synmaxcol = getbufvar(a:bufnr, '&synmaxcol', 1000) + if synmaxcol == 0 + let synmaxcol = 1000 + endif + let synmaxcol = min([synmaxcol, 1000]) + let srcId = coc#highlight#create_namespace(a:key) + for range in a:ranges + let start = range['start'] + let end = range['end'] + for lnum in range(start['line'] + 1, end['line'] + 1) + let arr = getbufline(bufnr, lnum) + let line = empty(arr) ? '' : arr[0] + if empty(line) + continue + endif + if start['character'] > synmaxcol || end['character'] > synmaxcol + continue + endif + let colStart = lnum == start['line'] + 1 ? coc#string#byte_index(line, start['character']) : 0 + let colEnd = lnum == end['line'] + 1 ? coc#string#byte_index(line, end['character']) : strlen(line) + if colStart == colEnd + continue + endif + call coc#highlight#add_highlight(bufnr, srcId, a:hlGroup, lnum - 1, colStart, colEnd, opts) + endfor + endfor +endfunction + +function! coc#highlight#add_highlight(bufnr, src_id, hl_group, line, col_start, col_end, ...) abort + let opts = get(a:, 1, {}) + let priority = get(opts, 'priority', v:null) + if !s:is_vim + if s:set_extmark && a:src_id != -1 + " get(opts, 'start_incl', 0) ? v:true : v:false, + try + call nvim_buf_set_extmark(a:bufnr, a:src_id, a:line, a:col_start, { + \ 'end_col': a:col_end, + \ 'hl_group': a:hl_group, + \ 'hl_mode': get(opts, 'combine', 1) ? 'combine' : 'replace', + \ 'right_gravity': v:true, + \ 'end_right_gravity': v:false, + \ 'priority': type(priority) == 0 ? min([priority, 4096]) : 4096, + \ }) + catch /^Vim\%((\a\+)\)\=:E5555/ + " the end_col could be invalid, ignore this error + endtry + else + call nvim_buf_add_highlight(a:bufnr, a:src_id, a:hl_group, a:line, a:col_start, a:col_end) + endif + else + call coc#api#exec('buf_add_highlight', [a:bufnr, a:src_id, a:hl_group, a:line, a:col_start, a:col_end, opts]) + endif +endfunction + +function! coc#highlight#clear_highlight(bufnr, key, start_line, end_line) abort + let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr + if !bufloaded(bufnr) + return + endif + let src_id = coc#highlight#create_namespace(a:key) + if has('nvim') + call nvim_buf_clear_namespace(a:bufnr, src_id, a:start_line, a:end_line) + else + call coc#api#exec('buf_clear_namespace', [a:bufnr, src_id, a:start_line, a:end_line]) + endif +endfunction + +" highlight buffer in winid with CodeBlock &HighlightItems +" export interface HighlightItem { +" lnum: number // 0 based +" hlGroup: string +" colStart: number // 0 based +" colEnd: number +" } +" export interface CodeBlock { +" filetype?: string +" hlGroup?: string +" startLine: number // 0 based +" endLine: number +" } +function! coc#highlight#add_highlights(winid, codes, highlights) abort + if get(g:, 'coc_node_env', '') ==# 'test' + call setwinvar(a:winid, 'highlights', a:highlights) + endif + " clear highlights + call coc#compat#execute(a:winid, 'syntax clear') + let bufnr = winbufnr(a:winid) + call coc#highlight#clear_highlight(bufnr, -1, 0, -1) + if !empty(a:codes) + call coc#highlight#highlight_lines(a:winid, a:codes) + endif + if !empty(a:highlights) + for item in a:highlights + let hlGroup = item['hlGroup'] + let opts = hlGroup =~# 'Search$' ? {'priority': 999, 'combine': 1} : {} + call coc#highlight#add_highlight(bufnr, -1, hlGroup, item['lnum'], item['colStart'], item['colEnd']) + endfor + endif +endfunction + + +" Add highlights to line groups of winid, support hlGroup and filetype +" config should have startLine, endLine (0 based, end excluded) and filetype or hlGroup +" endLine should > startLine and endLine is excluded +" +" export interface CodeBlock { +" filetype?: string +" hlGroup?: string +" startLine: number // 0 based +" endLine: number +" } +function! coc#highlight#highlight_lines(winid, blocks) abort + let region_id = 1 + let defined = [] + let cmds = [] + for config in a:blocks + let start = config['startLine'] + 1 + let end = config['endLine'] == -1 ? len(getbufline(winbufnr(a:winid), 1, '$')) + 1 : config['endLine'] + 1 + let filetype = get(config, 'filetype', '') + let hlGroup = get(config, 'hlGroup', '') + if !empty(hlGroup) + call add(cmds, 'syntax region '.hlGroup.' start=/\%'.start.'l/ end=/\%'.end.'l/') + else + let filetype = matchstr(filetype, '\v^\w+') + if empty(filetype) || filetype == 'txt' || index(get(g:, 'coc_markdown_disabled_languages', []), filetype) != -1 + continue + endif + if index(defined, filetype) == -1 + call add(cmds, 'syntax include @'.toupper(filetype).' syntax/'.filetype.'.vim') + call add(cmds, 'unlet! b:current_syntax') + call add(defined, filetype) + endif + call add(cmds, 'syntax region CodeBlock'.region_id.' start=/\%'.start.'l/ end=/\%'.end.'l/ contains=@'.toupper(filetype).' keepend') + let region_id = region_id + 1 + endif + endfor + if !empty(cmds) + call coc#compat#execute(a:winid, cmds, 'silent!') + endif +endfunction + +function! coc#highlight#compose(fg, bg) abort + let fgId = synIDtrans(hlID(a:fg)) + let bgId = synIDtrans(hlID(a:bg)) + let isGuiReversed = synIDattr(fgId, 'reverse', 'gui') !=# '1' || synIDattr(bgId, 'reverse', 'gui') !=# '1' + let guifg = isGuiReversed ? synIDattr(fgId, 'fg', 'gui') : synIDattr(fgId, 'bg', 'gui') + let guibg = isGuiReversed ? synIDattr(bgId, 'bg', 'gui') : synIDattr(bgId, 'fg', 'gui') + let isCtermReversed = synIDattr(fgId, 'reverse', 'cterm') !=# '1' || synIDattr(bgId, 'reverse', 'cterm') !=# '1' + let ctermfg = isCtermReversed ? synIDattr(fgId, 'fg', 'cterm') : synIDattr(fgId, 'bg', 'cterm') + let ctermbg = isCtermReversed ? synIDattr(bgId, 'bg', 'cterm') : synIDattr(bgId, 'fg', 'cterm') + let bold = synIDattr(fgId, 'bold') ==# '1' + let italic = synIDattr(fgId, 'italic') ==# '1' + let underline = synIDattr(fgId, 'underline') ==# '1' + let cmd = '' + if !empty(guifg) + let cmd .= ' guifg=' . guifg + endif + if !empty(ctermfg) + let cmd .= ' ctermfg=' . ctermfg + elseif guifg =~# '^#' + let cmd .= ' ctermfg=' . coc#color#rgb2term(strpart(guifg, 1)) + endif + if !empty(guibg) + let cmd .= ' guibg=' . guibg + endif + if !empty(ctermbg) + let cmd .= ' ctermbg=' . ctermbg + elseif guibg =~# '^#' + let cmd .= ' ctermbg=' . coc#color#rgb2term(strpart(guibg, 1)) + endif + if bold + let cmd .= ' cterm=bold gui=bold' + elseif italic + let cmd .= ' cterm=italic gui=italic' + elseif underline + let cmd .= ' cterm=underline gui=underline' + endif + return cmd +endfunction + +function! coc#highlight#valid(hlGroup) abort + return hlexists(a:hlGroup) && execute('hi '.a:hlGroup, 'silent!') !~# ' cleared$' +endfunction + +" Compose hlGroups with foreground and background colors. +function! coc#highlight#compose_hlgroup(fgGroup, bgGroup) abort + let hlGroup = 'Fg'.a:fgGroup.'Bg'.a:bgGroup + if a:fgGroup ==# a:bgGroup + return a:fgGroup + endif + if coc#highlight#valid(hlGroup) + return hlGroup + endif + let cmd = coc#highlight#compose(a:fgGroup, a:bgGroup) + if empty(cmd) + return 'Normal' + endif + execute 'silent hi ' . hlGroup . cmd + return hlGroup +endfunction + +" hlGroup id, key => 'fg' | 'bg', kind => 'cterm' | 'gui' +function! coc#highlight#get_color(id, key, kind) abort + if synIDattr(a:id, 'reverse', a:kind) !=# '1' + return synIDattr(a:id, a:key, a:kind) + endif + return synIDattr(a:id, a:key ==# 'bg' ? 'fg' : 'bg', a:kind) +endfunction + +function! coc#highlight#get_hl_command(id, key, cterm, gui) abort + let cterm = coc#highlight#get_color(a:id, a:key, 'cterm') + let gui = coc#highlight#get_color(a:id, a:key, 'gui') + let cmd = ' cterm'.a:key.'=' . (empty(cterm) ? a:cterm : cterm) + let cmd .= ' gui'.a:key.'=' . (empty(gui) ? a:gui : gui) + return cmd +endfunction + +function! coc#highlight#reversed(id) abort + let gui = has('gui_running') || &termguicolors == 1 + if synIDattr(synIDtrans(a:id), 'reverse', gui ? 'gui' : 'cterm') == '1' + return 1 + endif + return 0 +endfunction + +function! coc#highlight#get_contrast(group1, group2) abort + let normal = coc#highlight#get_hex_color(synIDtrans(hlID('Normal')), 'bg', '#000000') + let bg1 = coc#highlight#get_hex_color(synIDtrans(hlID(a:group1)), 'bg', normal) + let bg2 = coc#highlight#get_hex_color(synIDtrans(hlID(a:group2)), 'bg', normal) + return coc#color#hex_contrast(bg1, bg2) +endfunction + +" Darken or lighten background +function! coc#highlight#create_bg_command(group, amount) abort + let id = synIDtrans(hlID(a:group)) + let normal = coc#highlight#get_hex_color(synIDtrans(hlID('Normal')), 'bg', &background ==# 'dark' ? '#282828' : '#fefefe') + let bg = coc#highlight#get_hex_color(id, 'bg', normal) + let hex = a:amount > 0 ? coc#color#darken(bg, a:amount) : coc#color#lighten(bg, -a:amount) + + let ctermbg = coc#color#rgb2term(strpart(hex, 1)) + if s:term && !s:check_ctermbg(id, ctermbg) && abs(a:amount) < 20.0 + return coc#highlight#create_bg_command(a:group, a:amount * 2) + endif + return 'ctermbg=' . ctermbg.' guibg=' . hex +endfunction + +function! coc#highlight#get_hex_color(id, kind, fallback) abort + let attr = coc#highlight#get_color(a:id, a:kind, s:term ? 'cterm' : 'gui') + let hex = s:to_hex_color(attr, s:term) + if empty(hex) && !s:term + let attr = coc#highlight#get_color(a:id, a:kind, 'cterm') + let hex = s:to_hex_color(attr, 1) + endif + return empty(hex) ? a:fallback : hex +endfunction + +function! s:check_ctermbg(id, cterm) abort + let attr = coc#highlight#get_color(a:id, 'bg', 'cterm') + if empty(attr) + let attr = coc#highlight#get_color(synIDtrans(hlID('Normal')), 'bg', 'cterm') + endif + if attr ==# a:cterm + return 0 + endif + return 1 +endfunction + +function! s:to_hex_color(color, term) abort + if empty(a:color) + return '' + endif + if a:color =~# '^#\x\+$' + return a:color + endif + if a:term && a:color =~# '^\d\+$' + return coc#color#term2rgb(a:color) + endif + let hex = coc#color#nameToHex(tolower(a:color), a:term) + return empty(hex) ? '' : hex +endfunction + +" add matches for winid, use 0 for current window. +function! coc#highlight#match_ranges(winid, bufnr, ranges, hlGroup, priority) abort + let winid = a:winid == 0 ? win_getid() : a:winid + let bufnr = a:bufnr == 0 ? winbufnr(winid) : a:bufnr + if empty(getwininfo(winid)) || (a:bufnr != 0 && winbufnr(a:winid) != a:bufnr) + " not valid + return [] + endif + if !s:clear_match_by_window + let curr = win_getid() + noa call win_gotoid(winid) + endif + let ids = [] + for range in a:ranges + let pos = [] + let start = range['start'] + let end = range['end'] + for lnum in range(start['line'] + 1, end['line'] + 1) + let arr = getbufline(bufnr, lnum) + let line = empty(arr) ? '' : arr[0] + if empty(line) + continue + endif + let colStart = lnum == start['line'] + 1 ? coc#string#byte_index(line, start['character']) + 1 : 1 + let colEnd = lnum == end['line'] + 1 ? coc#string#byte_index(line, end['character']) + 1 : strlen(line) + 1 + if colStart == colEnd + continue + endif + call add(pos, [lnum, colStart, colEnd - colStart]) + endfor + if !empty(pos) + let opts = s:clear_match_by_window ? {'window': a:winid} : {} + let i = 1 + let l = [] + for p in pos + call add(l, p) + if i % 8 == 0 + let id = matchaddpos(a:hlGroup, l, a:priority, -1, opts) + call add(ids, id) + let l = [] + endif + let i += 1 + endfor + if !empty(l) + let id = matchaddpos(a:hlGroup, l, a:priority, -1, opts) + call add(ids, id) + endif + endif + endfor + if !s:clear_match_by_window + noa call win_gotoid(curr) + endif + return ids +endfunction + +" Clear matches by hlGroup regexp. +function! coc#highlight#clear_match_group(winid, match) abort + let winid = a:winid == 0 ? win_getid() : a:winid + if empty(getwininfo(winid)) + " not valid + return + endif + if s:clear_match_by_window + let arr = filter(getmatches(winid), 'v:val["group"] =~# "'.a:match.'"') + for item in arr + call matchdelete(item['id'], winid) + endfor + else + let curr = win_getid() + let switch = exists('*nvim_set_current_win') && curr != winid + if switch + noa call nvim_set_current_win(a:winid) + endif + if win_getid() == winid + let arr = filter(getmatches(), 'v:val["group"] =~# "'.a:match.'"') + for item in arr + call matchdelete(item['id']) + endfor + endif + if switch + noa call nvim_set_current_win(curr) + endif + endif +endfunction + +" Clear matches by match ids, use 0 for current win. +function! coc#highlight#clear_matches(winid, ids) + let winid = a:winid == 0 ? win_getid() : a:winid + if empty(getwininfo(winid)) + " not valid + return + endif + if s:clear_match_by_window + for id in a:ids + try + call matchdelete(id, winid) + catch /^Vim\%((\a\+)\)\=:E803/ + " ignore + endtry + endfor + else + let curr = win_getid() + let switch = exists('*nvim_set_current_win') && curr != winid + if switch + noa call nvim_set_current_win(a:winid) + endif + if win_getid() == winid + for id in a:ids + try + call matchdelete(id) + catch /^Vim\%((\a\+)\)\=:E803/ + " ignore + endtry + endfor + endif + if switch + noa call nvim_set_current_win(curr) + endif + endif +endfunction + +function! coc#highlight#clear_all() abort + for src_id in values(s:namespace_map) + for bufnr in map(getbufinfo({'bufloaded': 1}), 'v:val["bufnr"]') + if has('nvim') + call nvim_buf_clear_namespace(bufnr, src_id, 0, -1) + else + call coc#api#exec('buf_clear_namespace', [bufnr, src_id, 0, -1]) + endif + endfor + endfor +endfunction + +function! coc#highlight#create_namespace(key) abort + if type(a:key) == 0 + return a:key + endif + if has_key(s:namespace_map, a:key) + return s:namespace_map[a:key] + endif + if has('nvim') + let s:namespace_map[a:key] = nvim_create_namespace('coc-'.a:key) + else + let s:namespace_map[a:key] = s:ns_id + let s:ns_id = s:ns_id + 1 + endif + return s:namespace_map[a:key] +endfunction + +function! coc#highlight#get_syntax_name(lnum, col) + return synIDattr(synIDtrans(synID(a:lnum,a:col,1)),"name") +endfunction + +function! s:prop_type_hlgroup(type) abort + return substitute(a:type, '_\d\+$', '', '') +endfunction + +function! s:update_highlights_timer(bufnr, changedtick, key, priority, groups, idx) abort + if getbufvar(a:bufnr, 'changedtick', 0) != a:changedtick + return + endif + let group = get(a:groups, a:idx, v:null) + if empty(group) + return + endif + if empty(group['highlights']) + call coc#highlight#clear_highlight(a:bufnr, a:key, group['start'], group['end']) + else + call coc#highlight#update_highlights(a:bufnr, a:key, group['highlights'], group['start'], group['end'], a:priority) + endif + if a:idx < len(a:groups) - 1 + call timer_start(50, { -> s:update_highlights_timer(a:bufnr, a:changedtick, a:key, a:priority, a:groups, a:idx + 1)}) + endif +endfunction + +function! s:add_highlights_timer(bufnr, ns, highlights, priority) abort + let hls = [] + let next = [] + for i in range(0, len(a:highlights) - 1) + if i < g:coc_highlight_maximum_count + call add(hls, a:highlights[i]) + else + call add(next, a:highlights[i]) + endif + endfor + call s:add_highlights(a:bufnr, a:ns, hls, a:priority) + if len(next) + call timer_start(30, {->s:add_highlights_timer(a:bufnr, a:ns, next, a:priority)}) + endif +endfunction + +function! s:add_highlights(bufnr, ns, highlights, priority) abort + for item in a:highlights + let opts = { + \ 'priority': a:priority, + \ 'combine': get(item, 4, 1) ? 1 : 0, + \ 'start_incl': get(item, 5, 0) ? 1 : 0, + \ 'end_incl': get(item, 6, 0) ? 1 : 0, + \ } + call coc#highlight#add_highlight(a:bufnr, a:ns, item[0], item[1], item[2], item[3], opts) + endfor +endfunction + +function! s:to_group(items) abort + let res = [] + let before = v:null + for item in a:items + if empty(before) || before[0] != item[1] + let before = [item[1], [item]] + call add(res, before) + else + call add(before[1], item) + endif + endfor + return res +endfunction + +function! s:get_priority(key, hlGroup, priority) abort + if a:hlGroup ==# 'CocListSearch' + return 2048 + endif + if a:hlGroup ==# 'CocSearch' + return 999 + endif + if strpart(a:key, 0, 10) !=# 'diagnostic' + return a:priority + endif + return a:priority - index(s:diagnostic_hlgroups, a:hlGroup) +endfunction + +function! s:group_hls(hls, linecount) abort + " start, end, highlights + let groups = [] + if empty(a:hls) + call add(groups, {'start': 0, 'end': a:linecount, 'highlights': []}) + return groups + endif + let start = 0 + let highlights = [] + let lastLnum = -1 + for item in a:hls + let lnum = item['lnum'] + if lnum >= a:linecount + break + endif + if len(highlights) < g:coc_highlight_maximum_count || lnum == lastLnum + call add(highlights, item) + let lastLnum = lnum + else + call add(groups, {'start': start, 'end': lastLnum + 1, 'highlights': highlights}) + let highlights = [] + let start = lastLnum + 1 + call add(highlights, item) + let lastLnum = lnum + endif + endfor + call add(groups, {'start': start, 'end': a:linecount, 'highlights': highlights}) + return groups +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/list.vim b/pack/acp/opt/coc.nvim/autoload/coc/list.vim new file mode 100644 index 0000000..fdf33be --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/list.vim @@ -0,0 +1,466 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:prefix = '[List Preview]' +let s:sign_group = 'CocList' +" filetype detect could be slow. +let s:filetype_map = { + \ 'c': 'c', + \ 'py': 'python', + \ 'vim': 'vim', + \ 'ts': 'typescript', + \ 'js': 'javascript', + \ 'html': 'html', + \ 'css': 'css' + \ } +let s:pwinid = -1 +let s:pbufnr = -1 +let s:match_ns = coc#highlight#create_namespace('list-match') +let s:sign_range = 'CocCursorLine' +let s:sign_popup_range = 'PopUpCocList' +let s:current_line_hl = 'CocListCurrent' + +function! coc#list#getchar() abort + return coc#prompt#getchar() +endfunction + +function! coc#list#setlines(bufnr, lines, append) + if a:append + silent call appendbufline(a:bufnr, '$', a:lines) + else + if exists('*deletebufline') + silent call deletebufline(a:bufnr, len(a:lines) + 1, '$') + else + let n = len(a:lines) + 1 + let saved_reg = @" + silent execute n.',$d' + let @" = saved_reg + endif + silent call setbufline(a:bufnr, 1, a:lines) + endif +endfunction + +function! coc#list#options(...) + let list = ['--top', '--tab', '--normal', '--no-sort', '--input=', '--strict', + \ '--regex', '--interactive', '--number-select', '--auto-preview', + \ '--ignore-case', '--no-quit', '--first', '--reverse', '--height='] + if get(g:, 'coc_enabled', 0) + let names = coc#rpc#request('listNames', []) + call extend(list, names) + endif + return join(list, "\n") +endfunction + +function! coc#list#names(...) abort + let names = coc#rpc#request('listNames', []) + return join(names, "\n") +endfunction + +function! coc#list#status(name) + if !exists('b:list_status') | return '' | endif + return get(b:list_status, a:name, '') +endfunction + +function! coc#list#create(position, height, name, numberSelect) + if a:position ==# 'tab' + call coc#ui#safe_open('silent tabe', 'list:///'.a:name) + else + call s:save_views(-1) + let height = max([1, a:height]) + let cmd = 'silent keepalt '.(a:position ==# 'top' ? '' : 'botright').height.'sp' + call coc#ui#safe_open(cmd, 'list:///'.a:name) + call s:set_height(height) + call s:restore_views() + endif + if a:numberSelect + setl norelativenumber + setl number + else + setl nonumber + setl norelativenumber + endif + setl colorcolumn="" + return [bufnr('%'), win_getid(), tabpagenr()] +endfunction + +" close list windows +function! coc#list#clean_up() abort + for i in range(1, winnr('$')) + let bufname = bufname(winbufnr(i)) + if bufname =~# 'list://' + execute i.'close!' + endif + endfor +endfunction + +function! coc#list#setup(source) + let b:list_status = {} + setl buftype=nofile nobuflisted nofen nowrap + setl norelativenumber bufhidden=wipe nocursorline winfixheight + setl tabstop=1 nolist nocursorcolumn undolevels=-1 + setl signcolumn=auto + if exists('&cursorlineopt') + setl cursorlineopt=both + endif + if s:is_vim + setl nocursorline + else + setl cursorline + setl winhighlight=CursorLine:CocListLine + endif + if has('nvim-0.5.0') || has('patch-8.1.0864') + setl scrolloff=0 + endif + setl filetype=list + syntax case ignore + let source = a:source[8:] + let name = toupper(source[0]).source[1:] + execute 'syntax match Coc'.name.'Line /\v^.*$/' + if !s:is_vim + " Repeat press and would invoke on vim + nnoremap c + endif +endfunction + +function! coc#list#close(winid, position, target_win, saved_height) abort + let tabnr = coc#window#tabnr(a:winid) + if a:position ==# 'tab' + if tabnr != -1 + call coc#list#close_preview(tabnr, 0) + endif + call coc#window#close(a:winid) + else + call s:save_views(a:winid) + if tabnr != -1 + call coc#list#close_preview(tabnr, 0) + endif + if type(a:target_win) == v:t_number + call win_gotoid(a:target_win) + endif + call coc#window#close(a:winid) + call s:restore_views() + if type(a:saved_height) == v:t_number + call coc#window#set_height(a:target_win, a:saved_height) + endif + " call coc#rpc#notify('Log', ["close", a:target_win, v]) + endif +endfunction + +function! coc#list#select(bufnr, line) abort + if s:is_vim && !empty(a:bufnr) && bufloaded(a:bufnr) + call sign_unplace(s:sign_group, { 'buffer': a:bufnr }) + if a:line > 0 + call sign_place(6, s:sign_group, s:current_line_hl, a:bufnr, {'lnum': a:line}) + endif + endif +endfunction + +" Check if previewwindow exists on current tab. +function! coc#list#has_preview() + if s:pwinid != -1 && coc#window#visible(s:pwinid) + return 1 + endif + for i in range(1, winnr('$')) + let preview = getwinvar(i, 'previewwindow', getwinvar(i, '&previewwindow', 0)) + if preview + return i + endif + endfor + return 0 +endfunction + +" Get previewwindow from tabnr, use 0 for current tab +function! coc#list#get_preview(...) abort + if s:pwinid != -1 && coc#window#visible(s:pwinid) + return s:pwinid + endif + let tabnr = get(a:, 1, 0) == 0 ? tabpagenr() : a:1 + let info = gettabinfo(tabnr) + if !empty(info) + for win in info[0]['windows'] + if gettabwinvar(tabnr, win, 'previewwindow', 0) + return win + endif + endfor + endif + return -1 +endfunction + +function! coc#list#scroll_preview(dir) abort + let winid = coc#list#get_preview() + if winid == -1 + return + endif + if exists('*win_execute') + call win_execute(winid, "normal! ".(a:dir ==# 'up' ? "\" : "\")) + else + let id = win_getid() + noa call win_gotoid(winid) + execute "normal! ".(a:dir ==# 'up' ? "\" : "\") + noa call win_gotoid(id) + endif +endfunction + +function! coc#list#close_preview(...) abort + let tabnr = get(a:, 1, tabpagenr()) + let winid = coc#list#get_preview(tabnr) + if winid != -1 + let keep = get(a:, 2, 1) && tabnr == tabpagenr() && !coc#window#is_float(winid) + if keep + call s:save_views(winid) + endif + call coc#window#close(winid) + if keep + call s:restore_views() + endif + endif +endfunction + +function! s:get_preview_lines(lines, config) abort + if empty(a:lines) + if get(a:config, 'scheme', 'file') !=# 'file' + let bufnr = s:load_buffer(get(a:config, 'name', '')) + return bufnr == 0 ? [''] : getbufline(bufnr, 1, '$') + else + return [''] + endif + endif + return a:lines +endfunction + +function! coc#list#float_preview(lines, config) abort + let position = get(a:config, 'position', 'bottom') + if position ==# 'tab' + throw 'unable to use float preview' + endif + let remain = 0 + let winrow = win_screenpos(winnr())[0] + if position ==# 'bottom' + let remain = winrow - 2 + else + let winbottom = winrow + winheight(winnr()) + let remain = &lines - &cmdheight - 1 - winbottom + endif + let lines = s:get_preview_lines(a:lines, a:config) + let height = s:get_preview_height(lines, a:config) + let height = min([remain, height + 2]) + if height < 0 + return + endif + let row = position ==# 'bottom' ? winrow - 3 - height : winrow + winheight(winnr()) + let title = fnamemodify(get(a:config, 'name', ''), ':.') + let total = get(get(b:, 'list_status', {}), 'total', 0) + if !empty(total) + let title .= ' ('.line('.').'/'.total.')' + endif + let lnum = min([get(a:config, 'lnum', 1), len(lines)]) + let opts = { + \ 'relative': 'editor', + \ 'width': winwidth(winnr()) - 2, + \ 'borderhighlight': 'MoreMsg', + \ 'highlight': 'Normal', + \ 'height': height, + \ 'col': 0, + \ 'index': lnum - 1, + \ 'row': row, + \ 'border': [1,1,1,1], + \ 'rounded': 1, + \ 'lines': lines, + \ 'scrollinside': 1, + \ 'title': title, + \ } + let result = coc#float#create_float_win(s:pwinid, s:pbufnr, opts) + if empty(result) + return + endif + let s:pwinid = result[0] + let s:pbufnr = result[1] + call setwinvar(s:pwinid, 'previewwindow', 1) + let topline = s:get_topline(a:config, lnum, height) + call coc#window#restview(s:pwinid, lnum, topline) + call s:preview_highlights(s:pwinid, s:pbufnr, a:config, 1) +endfunction + +" Improve preview performance by reused window & buffer. +" lines - list of lines +" config.position - could be 'bottom' 'top' 'tab'. +" config.winid - id of original window. +" config.name - (optional )name of preview buffer. +" config.splitRight - (optional) split to right when 1. +" config.lnum - (optional) current line number +" config.filetype - (optional) filetype of lines. +" config.range - (optional) highlight range. with hlGroup. +" config.hlGroup - (optional) highlight group. +" config.maxHeight - (optional) max height of window, valid for 'bottom' & 'top' position. +function! coc#list#preview(lines, config) abort + let lines = s:get_preview_lines(a:lines, a:config) + let winid = coc#list#get_preview(0) + let bufnr = winid == -1 ? 0 : winbufnr(winid) + " Try reuse buffer & window + let bufnr = coc#float#create_buf(bufnr, lines) + if bufnr == 0 + return + endif + let lnum = get(a:config, 'lnum', 1) + let position = get(a:config, 'position', 'bottom') + let original = get(a:config, 'winid', -1) + if winid == -1 + let change = position != 'tab' && get(a:config, 'splitRight', 0) + let curr = win_getid() + if change + if original && win_id2win(original) + noa call win_gotoid(original) + else + noa wincmd t + endif + execute 'noa belowright vert sb '.bufnr + let winid = win_getid() + elseif position == 'tab' || get(a:config, 'splitRight', 0) + execute 'noa belowright vert sb '.bufnr + let winid = win_getid() + else + let mod = position == 'top' ? 'below' : 'above' + let height = s:get_preview_height(lines, a:config) + call s:save_views(-1) + execute 'noa '.mod.' sb +resize\ '.height.' '.bufnr + call s:restore_views() + let winid = win_getid() + endif + call setbufvar(bufnr, '&synmaxcol', 500) + noa call winrestview({"lnum": lnum ,"topline":s:get_topline(a:config, lnum, winheight(winid))}) + call s:set_preview_options(winid) + noa call win_gotoid(curr) + else + let height = s:get_preview_height(lines, a:config) + if height > 0 + if s:is_vim + let curr = win_getid() + noa call win_gotoid(winid) + execute 'silent! noa resize '.height + noa call win_gotoid(curr) + else + call s:save_views(winid) + call nvim_win_set_height(winid, height) + call s:restore_views() + endif + endif + call coc#window#restview(winid, lnum, s:get_topline(a:config, lnum, height)) + endif + call s:preview_highlights(winid, bufnr, a:config, 0) +endfunction + +function! s:preview_highlights(winid, bufnr, config, float) abort + let name = fnamemodify(get(a:config, 'name', ''), ':.') + let newname = s:prefix.' '.name + if newname !=# bufname(a:bufnr) + if s:is_vim + call win_execute(a:winid, 'noa file '.fnameescape(newname), 'silent!') + else + silent! noa call nvim_buf_set_name(a:bufnr, newname) + endif + endif + + let filetype = get(a:config, 'filetype', '') + let extname = matchstr(name, '\.\zs[^.]\+$') + if empty(filetype) && !empty(extname) + let filetype = get(s:filetype_map, extname, '') + endif + " highlights + let sign_group = s:is_vim && a:float ? s:sign_popup_range : s:sign_range + call coc#compat#execute(a:winid, ['syntax clear', 'call clearmatches()']) + call sign_unplace(sign_group, {'buffer': a:bufnr}) + let lnum = get(a:config, 'lnum', 1) + if !empty(filetype) + let start = max([0, lnum - 300]) + let end = min([coc#compat#buf_line_count(a:bufnr), lnum + 300]) + call coc#highlight#highlight_lines(a:winid, [{'filetype': filetype, 'startLine': start, 'endLine': end}]) + call coc#compat#execute(a:winid, 'syn sync fromstart') + else + call coc#compat#execute(a:winid, 'filetype detect') + let ft = getbufvar(a:bufnr, '&filetype', '') + if !empty(extname) && !empty(ft) + let s:filetype_map[extname] = ft + endif + endif + " selection range + let targetRange = get(a:config, 'targetRange', v:null) + if !empty(targetRange) + for lnum in range(targetRange['start']['line'] + 1, targetRange['end']['line'] + 1) + call sign_place(0, sign_group, s:current_line_hl, a:bufnr, {'lnum': lnum}) + endfor + endif + let range = get(a:config, 'range', v:null) + if !empty(range) + let hlGroup = get(a:config, 'hlGroup', 'Search') + call coc#highlight#match_ranges(a:winid, a:bufnr, [range], hlGroup, 10) + endif +endfunction + +function! s:get_preview_height(lines, config) abort + if get(a:config, 'splitRight', 0) || get(a:config, 'position', 'bottom') == 'tab' + return 0 + endif + let height = min([get(a:config, 'maxHeight', 10), len(a:lines), &lines - &cmdheight - 2]) + return height +endfunction + +function! s:load_buffer(name) abort + if exists('*bufadd') && exists('*bufload') + let bufnr = bufadd(a:name) + call bufload(bufnr) + return bufnr + endif + return 0 +endfunction + +function! s:get_topline(config, lnum, winheight) abort + let toplineStyle = get(a:config, 'toplineStyle', 'offset') + if toplineStyle == 'middle' + return max([1, a:lnum - a:winheight/2]) + endif + let toplineOffset = get(a:config, 'toplineOffset', 3) + return max([1, a:lnum - toplineOffset]) +endfunction + +function! s:set_preview_options(winid) abort + call setwinvar(a:winid, '&foldmethod', 'manual') + call setwinvar(a:winid, '&foldenable', 0) + call setwinvar(a:winid, '&signcolumn', 'no') + call setwinvar(a:winid, '&number', 1) + call setwinvar(a:winid, '&cursorline', 0) + call setwinvar(a:winid, '&relativenumber', 0) + call setwinvar(a:winid, 'previewwindow', 1) +endfunction + +" save views on current tabpage +function! s:save_views(exclude) abort + " Not work as expected when cursor becomes hidden + if s:is_vim + return + endif + for nr in range(1, winnr('$')) + let winid = win_getid(nr) + if winid != a:exclude && getwinvar(nr, 'previewwindow', 0) == 0 && !coc#window#is_float(winid) + call coc#compat#execute(winid, 'let w:coc_list_saved_view = winsaveview()') + endif + endfor +endfunction + +function! s:restore_views() abort + if s:is_vim + return + endif + for nr in range(1, winnr('$')) + let saved = getwinvar(nr, 'coc_list_saved_view', v:null) + if !empty(saved) + let winid = win_getid(nr) + call coc#compat#execute(winid, 'noa call winrestview(w:coc_list_saved_view) | unlet w:coc_list_saved_view') + endif + endfor +endfunction + +function! s:set_height(height) abort + let curr = winheight(0) + if curr != a:height + execute 'resize '.a:height + endif +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/math.vim b/pack/acp/opt/coc.nvim/autoload/coc/math.vim new file mode 100644 index 0000000..27757b9 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/math.vim @@ -0,0 +1,11 @@ + +" support for float values +function! coc#math#min(first, ...) abort + let val = a:first + for i in range(0, len(a:000) - 1) + if a:000[i] < val + let val = a:000[i] + endif + endfor + return val +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/notify.vim b/pack/acp/opt/coc.nvim/autoload/coc/notify.vim new file mode 100644 index 0000000..b3771a4 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/notify.vim @@ -0,0 +1,539 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:utf = has('nvim') || &encoding =~# '^utf' +let s:error_icon = get(g:, 'coc_notify_error_icon', s:utf ? "\uf057" : 'E') +let s:warning_icon = get(g:, 'coc_notify_warning_icon', s:utf ? "\u26a0" : 'W') +let s:info_icon = get(g:, 'coc_notify_info_icon', s:utf ? "\uf06a" : 'I') +let s:interval = get(g:, 'coc_notify_interval', s:is_vim ? 50 : 20) +let s:phl = 'CocNotificationProgress' +let s:progress_char = 'โ”€' +let s:duration = 300.0 +let s:winids = [] + +" Valid notify winids on current tab +function! coc#notify#win_list() abort + call filter(s:winids, 'coc#float#valid(v:val)') + return filter(copy(s:winids), '!empty(getwinvar(v:val,"float"))') +endfunction + +function! coc#notify#close_all() abort + for winid in coc#notify#win_list() + call coc#notify#close(winid) + endfor +endfunction + +" Do action for winid or first notify window with actions. +function! coc#notify#do_action(...) abort + let winids = a:0 > 0 ? a:000 : coc#notify#win_list() + for winid in winids + if coc#float#valid(winid) && getwinvar(winid, 'closing', 0) != 1 + let actions = getwinvar(winid, 'actions', []) + if !empty(actions) + let items = map(copy(actions), '(v:key + 1).". ".v:val') + let msg = join(getbufline(winbufnr(winid), 1, '$'), ' ') + call coc#ui#quickpick(msg, items, {err, res -> s:on_action(err, res, winid) }) + break + endif + endif + endfor +endfunction + +" Copy notification contents +function! coc#notify#copy() abort + let lines = [] + for winid in coc#notify#win_list() + let key = getwinvar(winid, 'key', v:null) + if type(key) == v:t_string + call extend(lines, json_decode(key)['lines']) + endif + endfor + if empty(lines) + echohl WarningMsg | echon 'No content to copy' | echohl None + return + endif + call setreg('*', join(lines, "\n")) +endfunction + +" Show source name in window +function! coc#notify#show_sources() abort + if !exists('*getbufline') || !exists('*appendbufline') + throw "getbufline and appendbufline functions required, please upgrade your vim." + endif + let winids = filter(coc#notify#win_list(), 'coc#window#get_var(v:val,"closing") != 1') + for winid in winids + let key = getwinvar(winid, 'key', v:null) + if type(key) == v:t_string + let bufnr = winbufnr(winid) + let obj = json_decode(key) + let sourcename = get(obj, 'source', '') + let lnum = get(obj, 'kind', '') ==# 'progress' ? 1 : 0 + let content = get(getbufline(bufnr, lnum + 1), 0, '') + if empty(sourcename) || content ==# sourcename + continue + endif + call appendbufline(bufnr, lnum, sourcename) + call coc#highlight#add_highlight(bufnr, -1, 'Title', lnum, 0, -1) + call coc#float#scroll_win(winid, 0, 1) + endif + endfor + redra +endfunction + +function! coc#notify#close_by_source(source) abort + let winids = filter(coc#notify#win_list(), 'coc#window#get_var(v:val,"closing") != 1') + for winid in winids + let key = getwinvar(winid, 'key', v:null) + if type(key) == v:t_string + let obj = json_decode(key) + if get(obj, 'source', '') ==# a:source + call coc#notify#close(winid) + endif + endif + endfor +endfunction + +" Cancel auto hide +function! coc#notify#keep() abort + for winid in coc#notify#win_list() + call s:cancel(winid, 'close_timer') + endfor +endfunction + +" borderhighlight - border highlight [string] +" maxWidth - max content width, default 60 [number] +" minWidth - minimal width [number] +" maxHeight - max content height, default 10 [number] +" highlight - default highlight [string] +" winblend - winblend [number] +" timeout - auto close timeout, default 5000 [number] +" title - title text +" marginRight - margin right, default 10 [number] +" focusable - focusable [number] +" source - source name [string] +" kind - kind for create icon [string] +" actions - action names [string[]] +" close - close button [boolean] +function! coc#notify#create(lines, config) abort + let actions = get(a:config, 'actions', []) + let key = json_encode(extend({'lines': a:lines}, a:config)) + let winid = s:find_win(key) + let kind = get(a:config, 'kind', '') + let row = 0 + if winid != -1 + let row = getwinvar(winid, 'top', 0) + call filter(s:winids, 'v:val != '.winid) + call coc#float#close(winid, 1) + let winid = v:null + endif + let opts = coc#dict#pick(a:config, ['highlight', 'borderhighlight', 'focusable', 'shadow', 'close']) + let border = has_key(opts, 'borderhighlight') ? [1, 1, 1, 1] : [] + let icon = s:get_icon(kind, get(a:config, 'highlight', 'CocFloating')) + let margin = get(a:config, 'marginRight', 10) + let maxWidth = min([&columns - margin - 2, get(a:config, 'maxWidth', 80)]) + if maxWidth <= 0 + throw 'No enough spaces for notification' + endif + let lines = map(copy(a:lines), 'tr(v:val, "\t", " ")') + if has_key(a:config, 'title') + if !empty(border) + let opts['title'] = a:config['title'] + else + let lines = [a:config['title']] + lines + endif + endif + let width = max(map(copy(lines), 'strwidth(v:val)')) + (empty(icon) ? 1 : 3) + if width > maxWidth + let lines = coc#string#reflow(lines, maxWidth) + let width = max(map(copy(lines), 'strwidth(v:val)')) + (empty(icon) ? 1 : 3) + endif + let highlights = [] + if !empty(icon) + let ic = icon['text'] + if empty(lines) + call add(lines, ic) + else + let lines[0] = ic.' '.lines[0] + endif + call add(highlights, {'lnum': 0, 'hlGroup': icon['hl'], 'colStart': 0, 'colEnd': strlen(ic)}) + endif + let actionText = join(actions, ' ') + call map(lines, 'v:key == 0 ? v:val : repeat(" ", '.(empty(icon) ? 0 : 2).').v:val') + let minWidth = get(a:config, 'minWidth', kind ==# 'progress' ? 30 : 10) + let width = max(extend(map(lines + [get(opts, 'title', '').' '], 'strwidth(v:val)'), [minWidth, strwidth(actionText) + 1])) + let width = min([maxWidth, width]) + let height = min([get(a:config, 'maxHeight', 3), len(lines)]) + if kind ==# 'progress' + let lines = [repeat(s:progress_char, width)] + lines + let height = height + 1 + endif + if !empty(actions) + let before = max([width - strwidth(actionText), 0]) + let lines = lines + [repeat(' ', before).actionText] + let height = height + 1 + call s:add_action_highlights(before, height - 1, highlights, actions) + endif + if row == 0 + let wintop = coc#notify#get_top() + let row = wintop - height - (empty(border) ? 0 : 2) - 1 + if !s:is_vim && !empty(border) + let row = row + 1 + endif + endif + let col = &columns - margin - width + if s:is_vim && !empty(border) + let col = col - 2 + endif + let winblend = 60 + " Avoid animate for transparent background. + if get(a:config, 'winblend', 30) == 0 && empty(synIDattr(synIDtrans(hlID(get(opts, 'highlight', 'CocFloating'))), 'bg', 'gui')) + let winblend = 0 + endif + call extend(opts, { + \ 'relative': 'editor', + \ 'width': width, + \ 'height': height, + \ 'col': col, + \ 'row': row + 1, + \ 'lines': lines, + \ 'rounded': 1, + \ 'highlights': highlights, + \ 'winblend': winblend, + \ 'border': border, + \ }) + let result = coc#float#create_float_win(0, 0, opts) + if empty(result) + throw 'Unable to create notify window' + endif + let winid = result[0] + let bufnr = result[1] + call setwinvar(winid, 'right', 1) + call setwinvar(winid, 'kind', 'notification') + call setwinvar(winid, 'top', row) + call setwinvar(winid, 'key', key) + call setwinvar(winid, 'actions', actions) + call setwinvar(winid, 'source', get(a:config, 'source', '')) + call setwinvar(winid, 'borders', !empty(border)) + call coc#float#nvim_scrollbar(winid) + call add(s:winids, winid) + let from = {'row': opts['row'], 'winblend': opts['winblend']} + let to = {'row': row, 'winblend': get(a:config, 'winblend', 30)} + call timer_start(s:interval, { -> s:animate(winid, from, to, 0)}) + if kind ==# 'progress' + call timer_start(s:interval, { -> s:progress(winid, width, 0, -1)}) + endif + if !s:is_vim + call coc#compat#buf_add_keymap(bufnr, 'n', '', ':call coc#notify#nvim_click('.winid.')', { + \ 'silent': v:true, + \ 'nowait': v:true + \ }) + endif + " Enable auto close + if empty(actions) && kind !=# 'progress' + let timer = timer_start(get(a:config, 'timeout', 10000), { -> coc#notify#close(winid)}) + call setwinvar(winid, 'close_timer', timer) + endif + return [winid, bufnr] +endfunction + +function! coc#notify#nvim_click(winid) abort + if getwinvar(a:winid, 'closing', 0) + return + endif + call s:cancel(a:winid, 'close_timer') + let actions = getwinvar(a:winid, 'actions', []) + if !empty(actions) + let character = strpart(getline('.'), col('.') - 1, 1) + if character =~# '^\k' + let word = expand('') + let idx = index(actions, word) + if idx != -1 + call coc#rpc#notify('FloatBtnClick', [winbufnr(a:winid), idx]) + call coc#notify#close(a:winid) + endif + endif + endif +endfunction + +function! coc#notify#on_close(winid) abort + if index(s:winids, a:winid) >= 0 + call filter(s:winids, 'v:val != '.a:winid) + call coc#notify#reflow() + endif +endfunction + +function! coc#notify#get_top() abort + let mintop = min(map(coc#notify#win_list(), 'coc#notify#get_win_top(v:val)')) + if mintop != 0 + return mintop + endif + return &lines - &cmdheight - (&laststatus == 0 ? 0 : 1 ) +endfunction + +function! coc#notify#get_win_top(winid) abort + let row = getwinvar(a:winid, 'top', 0) + if row == 0 + return row + endif + return row - (s:is_vim ? 0 : getwinvar(a:winid, 'borders', 0)) +endfunction + +" Close with timer +function! coc#notify#close(winid) abort + if !coc#float#valid(a:winid) || coc#window#get_var(a:winid, 'closing', 0) == 1 + return + endif + if !coc#window#visible(a:winid) + call coc#float#close(a:winid, 1) + return + endif + let row = coc#window#get_var(a:winid, 'top') + if type(row) != v:t_number + call coc#float#close(a:winid) + return + endif + call coc#window#set_var(a:winid, 'closing', 1) + call s:cancel(a:winid) + let winblend = coc#window#get_var(a:winid, 'winblend', 0) + let curr = s:is_vim ? {'row': row} : {'winblend': winblend} + let dest = s:is_vim ? {'row': row + 1} : {'winblend': winblend == 0 ? 0 : 60} + call s:animate(a:winid, curr, dest, 0, 1) +endfunction + +function! s:add_action_highlights(before, lnum, highlights, actions) abort + let colStart = a:before + for text in a:actions + let w = strwidth(text) + call add(a:highlights, { + \ 'lnum': a:lnum, + \ 'hlGroup': 'CocNotificationButton', + \ 'colStart': colStart, + \ 'colEnd': colStart + w + \ }) + let colStart = colStart + w + 1 + endfor +endfunction + +function! s:on_action(err, idx, winid) abort + if !empty(a:err) + throw a:err + endif + if a:idx > 0 + call coc#rpc#notify('FloatBtnClick', [winbufnr(a:winid), a:idx - 1]) + call coc#notify#close(a:winid) + endif +endfunction + +function! s:cancel(winid, ...) abort + let name = get(a:, 1, 'timer') + let timer = coc#window#get_var(a:winid, name) + if !empty(timer) + call timer_stop(timer) + call coc#window#set_var(a:winid, name, v:null) + endif +endfunction + +function! s:progress(winid, total, curr, index) abort + if !coc#float#valid(a:winid) + return + endif + if coc#window#visible(a:winid) + let total = a:total + let idx = float2nr(a:curr/5.0)%total + let option = coc#float#get_options(a:winid) + let width = option['width'] + if idx != a:index + " update percent & message + let bufnr = winbufnr(a:winid) + let percent = coc#window#get_var(a:winid, 'percent') + let lines = [] + if !empty(percent) + let line = repeat(s:progress_char, width - 4).printf('%4s', percent) + let total = width - 4 + call add(lines, line) + else + call add(lines, repeat(s:progress_char, width)) + endif + let message = coc#window#get_var(a:winid, 'message') + if !empty(message) + let lines = lines + coc#string#reflow(split(message, '\v\r?\n'), width) + endif + noa call setbufline(bufnr, 1, lines) + noa call deletebufline(bufnr, len(lines) + 1, '$') + let height = option['height'] + let delta = len(lines) - height + if delta > 0 && height < 3 + call coc#float#change_height(a:winid, min([delta, 3 - height])) + let tabnr = coc#window#tabnr(a:winid) + call coc#notify#reflow(tabnr) + if len(lines) > 3 + call coc#float#nvim_scrollbar(a:winid) + endif + endif + let bytes = strlen(s:progress_char) + call coc#highlight#clear_highlight(bufnr, -1, 0, 1) + let colStart = bytes * idx + if idx + 4 <= total + let colEnd = bytes * (idx + 4) + call coc#highlight#add_highlight(bufnr, -1, s:phl, 0, colStart, colEnd) + else + let colEnd = bytes * total + call coc#highlight#add_highlight(bufnr, -1, s:phl, 0, colStart, colEnd) + call coc#highlight#add_highlight(bufnr, -1, s:phl, 0, 0, bytes * (idx + 4 - total)) + endif + endif + call timer_start(s:interval, { -> s:progress(a:winid, total, a:curr + 1, idx)}) + else + " Not block CursorHold event + call timer_start(&updatetime + 100, { -> s:progress(a:winid, a:total, a:curr, a:index)}) + endif +endfunction + +" Optional row & winblend +function! s:config_win(winid, props) abort + let change_row = has_key(a:props, 'row') + if s:is_vim + if change_row + call popup_move(a:winid, {'line': a:props['row'] + 1}) + endif + else + if change_row + let [row, column] = nvim_win_get_position(a:winid) + call nvim_win_set_config(a:winid, { + \ 'row': a:props['row'], + \ 'col': column, + \ 'relative': 'editor', + \ }) + call s:nvim_move_related(a:winid, a:props['row']) + endif + call coc#float#nvim_set_winblend(a:winid, get(a:props, 'winblend', v:null)) + call coc#float#nvim_refresh_scrollbar(a:winid) + endif +endfunction + +function! s:nvim_move_related(winid, row) abort + let winids = coc#window#get_var(a:winid, 'related') + if empty(winids) + return + endif + for winid in winids + if nvim_win_is_valid(winid) + let [row, column] = nvim_win_get_position(winid) + let delta = coc#window#get_var(winid, 'delta', 0) + call nvim_win_set_config(winid, { + \ 'row': a:row + delta, + \ 'col': column, + \ 'relative': 'editor', + \ }) + endif + endfor +endfunction + +function! s:animate(winid, from, to, prev, ...) abort + if !coc#float#valid(a:winid) + return + endif + let curr = a:prev + s:interval + let percent = coc#math#min(curr / s:duration, 1) + let props = s:get_props(a:from, a:to, percent) + call s:config_win(a:winid, props) + let close = get(a:, 1, 0) + if percent < 1 + call timer_start(s:interval, { -> s:animate(a:winid, a:from, a:to, curr, close)}) + elseif close + call filter(s:winids, 'v:val != '.a:winid) + let tabnr = coc#window#tabnr(a:winid) + if tabnr != -1 + call coc#float#close(a:winid, 1) + call coc#notify#reflow(tabnr) + endif + endif +endfunction + +function! coc#notify#reflow(...) abort + let tabnr = get(a:, 1, tabpagenr()) + let winids = filter(copy(s:winids), 'coc#window#tabnr(v:val) == '.tabnr.' && coc#window#get_var(v:val,"closing") != 1') + if empty(winids) + return + endif + let animate = tabnr == tabpagenr() + let wins = map(copy(winids), {_, val -> { + \ 'winid': val, + \ 'row': coc#window#get_var(val,'top',0), + \ 'top': coc#window#get_var(val,'top',0) - (s:is_vim ? 0 : coc#window#get_var(val, 'borders', 0)), + \ 'height': coc#float#get_height(val), + \ }}) + call sort(wins, {a, b -> b['top'] - a['top']}) + let bottom = &lines - &cmdheight - (&laststatus == 0 ? 0 : 1 ) + let moved = 0 + for item in wins + let winid = item['winid'] + let delta = bottom - (item['top'] + item['height'] + 1) + if delta != 0 + call s:cancel(winid) + let dest = item['row'] + delta + call coc#window#set_var(winid, 'top', dest) + if animate + call s:move_win_timer(winid, {'row': item['row']}, {'row': dest}, 0) + else + call s:config_win(winid, {'row': dest}) + endif + let moved = moved + delta + endif + let bottom = item['top'] + delta + endfor +endfunction + +function! s:move_win_timer(winid, from, to, curr) abort + if !coc#float#valid(a:winid) + return + endif + if coc#window#get_var(a:winid, 'closing', 0) == 1 + return + endif + let percent = coc#math#min(a:curr / s:duration, 1) + let next = a:curr + s:interval + if a:curr > 0 + call s:config_win(a:winid, s:get_props(a:from, a:to, percent)) + endif + if percent < 1 + let timer = timer_start(s:interval, { -> s:move_win_timer(a:winid, a:from, a:to, next)}) + call coc#window#set_var(a:winid, 'timer', timer) + endif +endfunction + +function! s:find_win(key) abort + for winid in coc#notify#win_list() + if getwinvar(winid, 'key', '') ==# a:key + return winid + endif + endfor + return -1 +endfunction + +function! s:get_icon(kind, bg) abort + if a:kind ==# 'info' + return {'text': s:info_icon, 'hl': coc#highlight#compose_hlgroup('CocInfoSign', a:bg)} + endif + if a:kind ==# 'warning' + return {'text': s:warning_icon, 'hl': coc#highlight#compose_hlgroup('CocWarningSign', a:bg)} + endif + if a:kind ==# 'error' + return {'text': s:error_icon, 'hl': coc#highlight#compose_hlgroup('CocErrorSign', a:bg)} + endif + return v:null +endfunction + +" percent should be float +function! s:get_props(from, to, percent) abort + let obj = {} + for key in keys(a:from) + let changed = a:to[key] - a:from[key] + if !s:is_vim && key ==# 'row' + " Could be float + let obj[key] = a:from[key] + changed * a:percent + else + let obj[key] = a:from[key] + float2nr(round(changed * a:percent)) + endif + endfor + return obj +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/prompt.vim b/pack/acp/opt/coc.nvim/autoload/coc/prompt.vim new file mode 100644 index 0000000..b452f95 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/prompt.vim @@ -0,0 +1,216 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:activated = 0 +let s:session_names = [] +let s:saved_ve = &t_ve +let s:saved_cursor = &guicursor +let s:gui = has('gui_running') || has('nvim') + +let s:char_map = { + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\":'' , + \ "\":'' , + \ "\":'', + \ "\":'', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\<2-LeftMouse>": '<2-LeftMouse>', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ } + +function! coc#prompt#getc() abort + let c = getchar() + return type(c) is 0 ? nr2char(c) : c +endfunction + +function! coc#prompt#getchar() abort + let input = coc#prompt#getc() + if 1 != &iminsert + return input + endif + "a language keymap is activated, so input must be resolved to the mapped values. + let partial_keymap = mapcheck(input, 'l') + while partial_keymap !=# '' + let dict = maparg(input, 'l', 0, 1) + if empty(dict) || get(dict, 'expr', 0) + return input + endif + let full_keymap = get(dict, 'rhs', '') + if full_keymap ==# "" && len(input) >= 3 "HACK: assume there are no keymaps longer than 3. + return input + elseif full_keymap ==# partial_keymap + return full_keymap + endif + let c = coc#prompt#getc() + if c ==# "\" || c ==# "\" + "if the short sequence has a valid mapping, return that. + if !empty(full_keymap) + return full_keymap + endif + return input + endif + let input .= c + let partial_keymap = mapcheck(input, 'l') + endwhile + return input +endfunction + +function! coc#prompt#start_prompt(session) abort + let s:session_names = s:filter(s:session_names, a:session) + call add(s:session_names, a:session) + if s:activated | return | endif + if s:is_vim + call s:start_prompt_vim() + else + call s:start_prompt() + endif +endfunction + +function! s:start_prompt_vim() abort + call timer_start(10, {-> s:start_prompt()}) +endfunction + +function! s:start_prompt() + if s:activated | return | endif + if !get(g:, 'coc_disable_transparent_cursor', 0) + if s:gui + if has('nvim-0.5.0') && !empty(s:saved_cursor) + set guicursor+=a:ver1-CocCursorTransparent/lCursor + endif + elseif s:is_vim + set t_ve= + endif + endif + let s:activated = 1 + try + while s:activated + let ch = coc#prompt#getchar() + if ch ==# "\" || ch ==# "\" || ch ==# "\" + continue + else + let curr = s:current_session() + let mapped = get(s:char_map, ch, ch) + if !empty(curr) + call coc#rpc#notify('InputChar', [curr, mapped, getcharmod()]) + endif + if mapped == '' + let s:session_names = [] + call s:reset() + break + endif + endif + endwhile + catch /^Vim:Interrupt$/ + let s:activated = 0 + call coc#rpc#notify('InputChar', [s:current_session(), '', 0]) + let s:session_names = [] + call s:reset() + return + endtry + let s:activated = 0 +endfunction + +function! coc#prompt#stop_prompt(session) + let s:session_names = s:filter(s:session_names, a:session) + if len(s:session_names) + return + endif + if s:activated + let s:activated = 0 + call s:reset() + call feedkeys("\", 'int') + endif +endfunction + +function! coc#prompt#activated() abort + return s:activated +endfunction + +function! s:reset() abort + if !get(g:, 'coc_disable_transparent_cursor',0) + " neovim has bug with revert empty &guicursor + if s:gui && !empty(s:saved_cursor) + if has('nvim-0.5.0') + set guicursor+=a:ver1-Cursor/lCursor + let &guicursor = s:saved_cursor + endif + elseif s:is_vim + let &t_ve = s:saved_ve + endif + endif + echo "" +endfunction + +function! s:current_session() abort + if empty(s:session_names) + return v:null + endif + return s:session_names[len(s:session_names) - 1] +endfunction + +function! s:filter(list, id) abort + return filter(copy(a:list), 'v:val !=# a:id') +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/pum.vim b/pack/acp/opt/coc.nvim/autoload/coc/pum.vim new file mode 100644 index 0000000..9b110ed --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/pum.vim @@ -0,0 +1,622 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:pum_bufnr = 0 +let s:pum_winid = -1 +let s:pum_index = -1 +let s:pum_size = 0 +let s:inserted = 0 +let s:virtual_text = 0 +let s:virtual_text_ns = coc#highlight#create_namespace('pum-virtual') +let s:ignore = s:is_vim || has('nvim-0.5.0') ? "\" : "\\" +let s:hide_pum = has('nvim-0.6.1') || has('patch-8.2.3389') +let s:virtual_text_support = has('nvim-0.5.0') || has('patch-9.0.0067') +" bufnr, &indentkeys +let s:saved_indenetkeys = [] +let s:saved_textwidth = [] +let s:prop_id = 0 +let s:reversed = 0 +let s:check_hl_group = 0 +let s:start_col = -1 + +if s:is_vim && s:virtual_text_support + if empty(prop_type_get('CocPumVirtualText')) + call prop_type_add('CocPumVirtualText', {'highlight': 'CocPumVirtualText'}) + endif +endif + +function! coc#pum#visible() abort + if s:pum_winid == -1 + return 0 + endif + " getwinvar check current tab only. + return getwinvar(s:pum_winid, 'float', 0) == 1 +endfunction + +function! coc#pum#winid() abort + return s:pum_winid +endfunction + +function! coc#pum#close_detail() abort + let winid = coc#float#get_float_by_kind('pumdetail') + if winid + call coc#float#close(winid, 1) + endif +endfunction + +function! coc#pum#close(...) abort + if coc#pum#visible() + let kind = get(a:, 1, '') + if kind ==# 'cancel' + let input = getwinvar(s:pum_winid, 'input', '') + let s:pum_index = -1 + call s:insert_word(input, 1) + call s:on_pum_change(0) + doautocmd TextChangedI + elseif kind ==# 'confirm' + let words = getwinvar(s:pum_winid, 'words', []) + if s:pum_index >= 0 + let word = get(words, s:pum_index, '') + call s:insert_word(word, 1) + " have to restore here, so that TextChangedI can trigger indent. + call s:restore_indentkeys() + endif + doautocmd TextChangedI + endif + call s:close_pum() + if !get(a:, 2, 0) + call coc#rpc#notify('CompleteStop', [kind]) + endif + endif + return '' +endfunction + +function! coc#pum#select_confirm() abort + if coc#pum#visible() + if s:pum_index < 0 + let s:pum_index = 0 + call s:on_pum_change(0) + endif + call coc#pum#close('confirm') + endif + return '' +endfunction + +function! coc#pum#_close() abort + if coc#pum#visible() + call s:close_pum() + endif +endfunction + +function! coc#pum#_one_more() abort + if coc#pum#visible() + let parts = getwinvar(s:pum_winid, 'parts', []) + let start = strlen(parts[0]) + let input = strpart(getline('.'), start, col('.') - 1 - start) + let words = getwinvar(s:pum_winid, 'words', []) + let word = get(words, s:pum_index == -1 ? 0 : s:pum_index, '') + if !empty(word) && strcharpart(word, 0, strchars(input)) ==# input + let ch = strcharpart(word, strchars(input), 1) + if !empty(ch) + call feedkeys(ch, "int") + endif + endif + endif + return '' +endfunction + +function! coc#pum#_insert() abort + if coc#pum#visible() + if s:pum_index >= 0 + let words = getwinvar(s:pum_winid, 'words', []) + let word = get(words, s:pum_index, '') + call s:insert_word(word, 1) + call s:restore_indentkeys() + endif + doautocmd TextChangedI + call s:close_pum() + call coc#rpc#notify('CompleteStop', ['']) + endif + return '' +endfunction + +function! coc#pum#insert() abort + return "\=coc#pum#_insert()\" +endfunction + +" Add one more character from the matched complete item(or first one), +" the word should starts with input, the same as vim's CTRL-L behavior. +function! coc#pum#one_more() abort + return "\=coc#pum#_one_more()\" +endfunction + +function! coc#pum#next(insert) abort + return "\=coc#pum#_navigate(1,".a:insert.")\" +endfunction + +function! coc#pum#prev(insert) abort + return "\=coc#pum#_navigate(0,".a:insert.")\" +endfunction + +function! coc#pum#stop() abort + return "\=coc#pum#close()\" +endfunction + +function! coc#pum#cancel() abort + return "\=coc#pum#close('cancel')\" +endfunction + +function! coc#pum#confirm() abort + return "\=coc#pum#close('confirm')\" +endfunction + +function! coc#pum#select(index, insert, confirm) abort + if coc#pum#visible() + if a:index == -1 + call coc#pum#close('cancel') + return '' + endif + if a:index < 0 || a:index >= s:pum_size + throw 'index out of range ' . a:index + endif + call s:select_by_index(a:index, a:insert) + if a:confirm + call coc#pum#close('confirm') + endif + endif + return '' +endfunction + +function! coc#pum#info() abort + let bufnr = winbufnr(s:pum_winid) + let words = getwinvar(s:pum_winid, 'words', []) + let word = s:pum_index < 0 ? '' : get(words, s:pum_index, '') + let base = { + \ 'word': word, + \ 'index': s:pum_index, + \ 'size': s:pum_size, + \ 'startcol': s:start_col, + \ 'inserted': s:pum_index >=0 && s:inserted ? v:true : v:false, + \ 'reversed': s:reversed ? v:true : v:false, + \ } + if s:is_vim + let pos = popup_getpos(s:pum_winid) + let border = has_key(popup_getoptions(s:pum_winid), 'border') + let add = pos['scrollbar'] && border ? 1 : 0 + return extend(base, { + \ 'scrollbar': pos['scrollbar'], + \ 'row': pos['line'] - 1, + \ 'col': pos['col'] - 1, + \ 'width': pos['width'] + add, + \ 'height': pos['height'], + \ 'border': border, + \ }) + else + let scrollbar = coc#float#get_related(s:pum_winid, 'scrollbar') + let winid = coc#float#get_related(s:pum_winid, 'border', s:pum_winid) + let pos = nvim_win_get_position(winid) + return extend(base, { + \ 'scrollbar': scrollbar && nvim_win_is_valid(scrollbar) ? 1 : 0, + \ 'row': pos[0], + \ 'col': pos[1], + \ 'width': nvim_win_get_width(winid), + \ 'height': nvim_win_get_height(winid), + \ 'border': winid != s:pum_winid, + \ }) + endif +endfunction + +function! coc#pum#scroll(forward) abort + if coc#pum#visible() + let height = s:get_height(s:pum_winid) + if s:pum_size > height + call timer_start(1, { -> s:scroll_pum(a:forward, height, s:pum_size)}) + endif + endif + " Required on old version vim/neovim. + return s:ignore +endfunction + +function! s:get_height(winid) abort + if has('nvim') + return nvim_win_get_height(a:winid) + endif + return get(popup_getpos(a:winid), 'core_height', 0) +endfunction + +function! s:scroll_pum(forward, height, size) abort + let topline = s:get_topline(s:pum_winid) + if !a:forward && topline == 1 + if s:pum_index >= 0 + call s:select_line(s:pum_winid, 1) + call s:on_pum_change(1) + endif + return + endif + if a:forward && topline + a:height - 1 >= a:size + if s:pum_index >= 0 + call s:select_line(s:pum_winid, a:size) + call s:on_pum_change(1) + endif + return + endif + call coc#float#scroll_win(s:pum_winid, a:forward, a:height) + if s:pum_index >= 0 + let lnum = s:pum_index + 1 + let topline = s:get_topline(s:pum_winid) + if lnum >= topline && lnum <= topline + a:height - 1 + return + endif + call s:select_line(s:pum_winid, topline) + call s:on_pum_change(1) + endif +endfunction + +function! s:get_topline(winid) abort + if has('nvim') + let info = getwininfo(a:winid)[0] + return info['topline'] + else + let pos = popup_getpos(a:winid) + return pos['firstline'] + endif +endfunction + +function! coc#pum#_navigate(next, insert) abort + if coc#pum#visible() + call s:save_indentkeys() + let index = s:get_index(a:next) + call s:select_by_index(index, a:insert) + endif + return '' +endfunction + +function! s:select_by_index(index, insert) abort + let lnum = a:index == -1 ? 0 : s:index_to_lnum(a:index) + call s:set_cursor(s:pum_winid, lnum) + if !s:is_vim + call coc#float#nvim_scrollbar(s:pum_winid) + endif + if a:insert + let s:inserted = 1 + if a:index < 0 + let input = getwinvar(s:pum_winid, 'input', '') + call s:insert_word(input, 0) + call coc#pum#close_detail() + else + let words = getwinvar(s:pum_winid, 'words', []) + let word = get(words, a:index, '') + call s:insert_word(word, 0) + endif + " The current line is wrong when use feedkeys. + if !s:is_vim + doautocmd TextChangedP + endif + endif + call s:on_pum_change(1) +endfunction + +function! s:get_index(next) abort + if a:next + let index = s:pum_index + 1 == s:pum_size ? -1 : s:pum_index + 1 + else + let index = s:pum_index == -1 ? s:pum_size - 1 : s:pum_index - 1 + endif + return index +endfunction + +function! s:insert_word(word, finish) abort + if s:start_col != -1 && mode() ==# 'i' + " avoid auto wrap using 'textwidth' + if !a:finish && &textwidth > 0 + let textwidth = &textwidth + noa setl textwidth=0 + call timer_start(0, { -> execute('noa setl textwidth='.textwidth)}) + endif + " should not be used on finish to have correct line. + if s:is_vim && !a:finish + call coc#pum#repalce(s:start_col + 1, a:word, 1) + else + let saved_completeopt = &completeopt + noa set completeopt=menu + noa call complete(s:start_col + 1, [{ 'empty': v:true, 'word': a:word }]) + " exit complete state + if s:hide_pum + call feedkeys("\\", 'in') + else + let g:coc_disable_space_report = 1 + call feedkeys("\\", 'in') + endif + execute 'noa set completeopt='.saved_completeopt + endif + endif +endfunction + +" Replace from col to cursor col with new characters +function! coc#pum#repalce(col, insert, ...) abort + let insert = a:insert + let curr = getline('.') + let removed = strpart(curr, a:col - 1, col('.') - a:col) + let n = strchars(removed) + let start = coc#string#common_start(insert, removed) + let event = get(a:, 1, 0) + if start > 0 + let n = n - start + let insert = strcharpart(a:insert, start) + if empty(insert) && n == 0 && !event + let n = 1 + let insert = coc#string#last_character(a:insert) + endif + endif + let keys = repeat("\", n).insert + if len(keys) + if event + let previous =strpart(curr, 0, a:col - 1) + call coc#rpc#notify('PumInsert', [previous.a:insert]) + let g:coc_feeding_keys = 1 + endif + call feedkeys(keys, 'int') + endif +endfunction + +" create or update pum with lines, CompleteOption and config. +" return winid & dimension +function! coc#pum#create(lines, opt, config) abort + if mode() !=# 'i' || a:opt['line'] != line('.') + return + endif + let len = col('.') - a:opt['col'] - 1 + if len < 0 + return + endif + let input = len == 0 ? '' : strpart(getline('.'), a:opt['col'], len) + if input !=# a:opt['input'] + return + endif + let config = s:get_pum_dimension(a:lines, a:opt['col'], a:config) + if empty(config) + return + endif + let s:reversed = get(a:config, 'reverse', 0) && config['row'] < 0 + let s:virtual_text = s:virtual_text_support && a:opt['virtualText'] + let s:pum_size = len(a:lines) + let s:pum_index = a:opt['index'] + let lnum = s:index_to_lnum(s:pum_index) + call extend(config, { + \ 'lines': s:reversed ? reverse(copy(a:lines)) : a:lines, + \ 'relative': 'cursor', + \ 'nopad': 1, + \ 'cursorline': 1, + \ 'index': lnum - 1, + \ 'focusable': v:false + \ }) + call extend(config, coc#dict#pick(a:config, ['highlight', 'rounded', 'highlights', 'winblend', 'shadow', 'border', 'borderhighlight'])) + if s:reversed + for item in config['highlights'] + let item['lnum'] = s:pum_size - item['lnum'] - 1 + endfor + endif + if empty(get(config, 'winblend', 0)) && exists('&pumblend') + let config['winblend'] = &pumblend + endif + let result = coc#float#create_float_win(s:pum_winid, s:pum_bufnr, config) + if empty(result) + return + endif + let s:inserted = 0 + let s:pum_winid = result[0] + let s:pum_bufnr = result[1] + let s:start_col = a:opt['startcol'] + call setwinvar(s:pum_winid, 'above', config['row'] < 0) + let firstline = s:get_firstline(lnum, s:pum_size, config['height']) + if s:is_vim + call popup_setoptions(s:pum_winid, { 'firstline': firstline }) + else + call coc#compat#execute(s:pum_winid, 'call winrestview({"lnum":'.lnum.',"topline":'.firstline.'})') + endif + call coc#dialog#place_sign(s:pum_bufnr, s:pum_index == -1 ? 0 : lnum) + " content before col and content after cursor + let linetext = getline('.') + let parts = [strpart(linetext, 0, s:start_col), strpart(linetext, col('.') - 1)] + let input = strpart(getline('.'), s:start_col, col('.') - 1 - s:start_col) + call setwinvar(s:pum_winid, 'input', input) + call setwinvar(s:pum_winid, 'parts', parts) + call setwinvar(s:pum_winid, 'words', a:opt['words']) + call setwinvar(s:pum_winid, 'kind', 'pum') + if !s:is_vim + if s:pum_size > config['height'] + redraw + call coc#float#nvim_scrollbar(s:pum_winid) + else + call coc#float#close_related(s:pum_winid, 'scrollbar') + endif + endif + call s:on_pum_change(0) +endfunction + +function! s:save_indentkeys() abort + let bufnr = bufnr('%') + if !empty(&indentexpr) && get(s:saved_indenetkeys, 0, 0) != bufnr + let s:saved_indenetkeys = [bufnr, &indentkeys] + execute 'setl indentkeys=' + endif +endfunction + +function! s:get_firstline(lnum, total, height) abort + if a:lnum <= a:height + return 1 + endif + return min([a:total - a:height + 1, a:lnum - (a:height*2/3)]) +endfunction + +function! s:on_pum_change(move) abort + if s:virtual_text + if s:inserted + call s:clear_virtual_text() + else + call s:insert_virtual_text() + endif + endif + let ev = extend(coc#pum#info(), {'move': a:move ? v:true : v:false}) + call coc#rpc#notify('CocAutocmd', ['MenuPopupChanged', ev, win_screenpos(winnr())[0] + winline() - 2]) +endfunction + +function! s:index_to_lnum(index) abort + if s:reversed + if a:index <= 0 + return s:pum_size + endif + return s:pum_size - a:index + endif + return max([1, a:index + 1]) +endfunction + +function! s:get_pum_dimension(lines, col, config) abort + let linecount = len(a:lines) + let [lineIdx, colIdx] = coc#cursor#screen_pos() + let bh = empty(get(a:config, 'border', [])) ? 0 : 2 + let columns = &columns + let pumwidth = max([15, exists('&pumwidth') ? &pumwidth : 0]) + let width = min([columns, max([pumwidth, a:config['width']])]) + let vh = &lines - &cmdheight - 1 - !empty(&tabline) + if vh <= 0 + return v:null + endif + let pumheight = empty(&pumheight) ? vh : &pumheight + let showTop = getwinvar(s:pum_winid, 'above', v:null) + if type(showTop) != v:t_number + if vh - lineIdx - bh - 1 < min([pumheight, linecount]) && vh - lineIdx < min([10, vh/2]) + let showTop = 1 + else + let showTop = 0 + endif + endif + let height = showTop ? min([lineIdx - bh - !empty(&tabline), linecount, pumheight]) : min([vh - lineIdx - bh - 1, linecount, pumheight]) + if height <= 0 + return v:null + endif + " should use strdiplaywidth here + let text = strpart(getline('.'), a:col, col('.') - 1 - a:col) + let col = - strdisplaywidth(text, a:col) - 1 + let row = showTop ? - height : 1 + let delta = colIdx + col + if width > pumwidth && delta + width > columns + let width = max([columns - delta, pumwidth]) + endif + if delta < 0 + let col = col - delta + elseif delta + width > columns + let col = max([-colIdx, col - (delta + width - columns)]) + endif + return { + \ 'row': row, + \ 'col': col, + \ 'width': width, + \ 'height': height + \ } +endfunction + +" can't use coc#dialog#set_cursor on vim8, don't know why +function! s:set_cursor(winid, line) abort + if s:is_vim + let pos = popup_getpos(a:winid) + let core_height = pos['core_height'] + let lastline = pos['firstline'] + core_height - 1 + if a:line > lastline + call popup_setoptions(a:winid, { + \ 'firstline': pos['firstline'] + a:line - lastline, + \ }) + elseif a:line < pos['firstline'] + if s:reversed + call popup_setoptions(a:winid, { + \ 'firstline': a:line == 0 ? s:pum_size - core_height + 1 : a:line - core_height + 1, + \ }) + else + call popup_setoptions(a:winid, { + \ 'firstline': max([1, a:line]), + \ }) + endif + endif + endif + call s:select_line(a:winid, a:line) +endfunction + +function! s:select_line(winid, line) abort + let s:pum_index = s:reversed ? (a:line == 0 ? -1 : s:pum_size - a:line) : a:line - 1 + let lnum = s:reversed ? (a:line == 0 ? s:pum_size : a:line) : max([1, a:line]) + if s:is_vim + call coc#compat#execute(a:winid, 'exe '.lnum) + else + call nvim_win_set_cursor(a:winid, [lnum, 0]) + endif + call coc#dialog#place_sign(s:pum_bufnr, a:line == 0 ? 0 : lnum) +endfunction + +function! s:insert_virtual_text() abort + let bufnr = bufnr('%') + if !s:virtual_text || s:pum_index < 0 + call s:clear_virtual_text() + else + " Check if could create + let insert = '' + let line = line('.') - 1 + let words = getwinvar(s:pum_winid, 'words', []) + let word = get(words, s:pum_index, '') + let input = strpart(getline('.'), s:start_col, col('.') - 1 - s:start_col) + if strlen(word) > strlen(input) && strcharpart(word, 0, strchars(input)) ==# input + let insert = strcharpart(word, strchars(input)) + endif + if s:is_vim + if s:prop_id != 0 + call prop_remove({'id': s:prop_id}, line + 1, line + 1) + endif + if !empty(insert) + let s:prop_id = prop_add(line + 1, col('.'), { + \ 'text': insert, + \ 'type': 'CocPumVirtualText' + \ }) + endif + else + call nvim_buf_clear_namespace(bufnr, s:virtual_text_ns, line, line + 1) + if !empty(insert) + let opts = { + \ 'hl_mode': 'combine', + \ 'virt_text': [[insert, 'CocPumVirtualText']], + \ 'virt_text_pos': 'overlay', + \ 'virt_text_win_col': virtcol('.') - 1, + \ } + call nvim_buf_set_extmark(bufnr, s:virtual_text_ns, line, col('.') - 1, opts) + endif + endif + endif +endfunction + +function! s:clear_virtual_text() abort + if s:virtual_text_support + if s:is_vim + if s:prop_id != 0 + call prop_remove({'id': s:prop_id}) + endif + else + call nvim_buf_clear_namespace(bufnr('%'), s:virtual_text_ns, 0, -1) + endif + endif +endfunction + +function! s:close_pum() abort + call s:clear_virtual_text() + call coc#float#close(s:pum_winid, 1) + let s:pum_winid = 0 + let s:pum_size = 0 + let winid = coc#float#get_float_by_kind('pumdetail') + if winid + call coc#float#close(winid, 1) + endif + call s:restore_indentkeys() +endfunction + +function! s:restore_indentkeys() abort + if get(s:saved_indenetkeys, 0, 0) == bufnr('%') + call setbufvar(s:saved_indenetkeys[0], '&indentkeys', get(s:saved_indenetkeys, 1, '')) + let s:saved_indenetkeys = [] + endif +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/rpc.vim b/pack/acp/opt/coc.nvim/autoload/coc/rpc.vim new file mode 100644 index 0000000..c1db59b --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/rpc.vim @@ -0,0 +1,236 @@ +scriptencoding utf-8 +let s:is_win = has("win32") || has("win64") +let s:client = v:null +let s:name = 'coc' +let s:is_vim = !has('nvim') +let s:chan_id = 0 +let s:root = expand(':h:h:h') + +function! coc#rpc#start_server() + let test = get(g:, 'coc_node_env', '') ==# 'test' + if test && !s:is_vim && !exists('$COC_NVIM_REMOTE_ADDRESS') + " server already started, chan_id could be available later + let s:client = coc#client#create(s:name, []) + let s:client['running'] = s:chan_id != 0 + let s:client['chan_id'] = s:chan_id + return + endif + if exists('$COC_NVIM_REMOTE_ADDRESS') + let address = $COC_NVIM_REMOTE_ADDRESS + if s:is_vim + let s:client = coc#client#create(s:name, []) + " TODO don't know if vim support named pipe on windows. + let address = address =~# ':\d\+$' ? address : 'unix:'.address + let channel = ch_open(address, { + \ 'mode': 'json', + \ 'close_cb': {channel -> s:on_channel_close()}, + \ 'noblock': 1, + \ 'timeout': 1000, + \ }) + if ch_status(channel) == 'open' + let s:client['running'] = 1 + let s:client['channel'] = channel + endif + else + let s:client = coc#client#create(s:name, []) + try + let mode = address =~# ':\d\+$' ? 'tcp' : 'pipe' + let chan_id = sockconnect(mode, address, { 'rpc': 1 }) + if chan_id > 0 + let s:client['running'] = 1 + let s:client['chan_id'] = chan_id + endif + catch /connection\ refused/ + " ignroe + endtry + endif + if !s:client['running'] + echohl Error | echom '[coc.nvim] Unable connect to '.address.' from variable $COC_NVIM_REMOTE_ADDRESS' | echohl None + elseif !test + let logfile = exists('$NVIM_COC_LOG_FILE') ? $NVIM_COC_LOG_FILE : '' + let loglevel = exists('$NVIM_COC_LOG_LEVEL') ? $NVIM_COC_LOG_LEVEL : '' + let runtimepath = join(globpath(&runtimepath, "", 0, 1), ",") + let data = [s:root, coc#util#get_data_home(), coc#util#get_config_home(), logfile, loglevel, runtimepath] + if s:is_vim + call ch_sendraw(s:client['channel'], json_encode(data)."\n") + else + call call('rpcnotify', [s:client['chan_id'], 'init'] + data) + endif + endif + return + endif + if empty(s:client) + let cmd = coc#util#job_command() + if empty(cmd) | return | endif + let $COC_VIMCONFIG = coc#util#get_config_home() + let $COC_DATA_HOME = coc#util#get_data_home() + let s:client = coc#client#create(s:name, cmd) + endif + if !coc#client#is_running('coc') + call s:client['start']() + endif + call s:check_vim_enter() +endfunction + +function! coc#rpc#started() abort + return !empty(s:client) +endfunction + +function! coc#rpc#ready() + if empty(s:client) || s:client['running'] == 0 + return 0 + endif + return 1 +endfunction + +" Used for test on neovim only +function! coc#rpc#set_channel(chan_id) abort + let s:chan_id = a:chan_id + let s:client['running'] = a:chan_id != 0 + let s:client['chan_id'] = a:chan_id +endfunction + +function! coc#rpc#get_channel() abort + if empty(s:client) + return v:null + endif + return coc#client#get_channel(s:client) +endfunction + +function! coc#rpc#kill() + let pid = get(g:, 'coc_process_pid', 0) + if !pid | return | endif + if s:is_win + call system('taskkill /PID '.pid) + else + call system('kill -9 '.pid) + endif +endfunction + +function! coc#rpc#show_errors() + let client = coc#client#get_client('coc') + if !empty(client) + let lines = get(client, 'stderr', []) + keepalt new +setlocal\ buftype=nofile [Stderr of coc.nvim] + setl noswapfile wrap bufhidden=wipe nobuflisted nospell + call append(0, lines) + exe "normal! z" . len(lines) . "\" + exe "normal! gg" + endif +endfunction + +function! coc#rpc#stop() + if empty(s:client) + return + endif + try + if s:is_vim + call job_stop(ch_getjob(s:client['channel']), 'term') + else + call jobstop(s:client['chan_id']) + endif + catch /.*/ + " ignore + endtry +endfunction + +function! coc#rpc#restart() + if empty(s:client) + call coc#rpc#start_server() + else + call coc#highlight#clear_all() + call coc#ui#sign_unplace() + call coc#float#close_all() + autocmd! coc_dynamic_autocmd + autocmd! coc_dynamic_content + autocmd! coc_dynamic_option + call coc#rpc#request('detach', []) + let g:coc_service_initialized = 0 + sleep 100m + if exists('$COC_NVIM_REMOTE_ADDRESS') + call coc#rpc#close_connection() + sleep 100m + call coc#rpc#start_server() + else + let s:client['command'] = coc#util#job_command() + call coc#client#restart(s:name) + call s:check_vim_enter() + endif + echohl MoreMsg | echom 'starting coc.nvim service' | echohl None + endif +endfunction + +function! coc#rpc#close_connection() abort + let channel = coc#rpc#get_channel() + if channel == v:null + return + endif + if s:is_vim + " Unlike neovim, vim not close the socket as expected. + call ch_close(channel) + else + call chanclose(channel) + endif + let s:client['running'] = 0 + let s:client['channel'] = v:null + let s:client['chan_id'] = 0 +endfunction + +function! coc#rpc#request(method, args) abort + if !coc#rpc#ready() + return '' + endif + return s:client['request'](a:method, a:args) +endfunction + +function! coc#rpc#notify(method, args) abort + if !coc#rpc#ready() + return '' + endif + call s:client['notify'](a:method, a:args) + return '' +endfunction + +function! coc#rpc#request_async(method, args, cb) abort + if !coc#rpc#ready() + return cb('coc.nvim service not started.') + endif + call s:client['request_async'](a:method, a:args, a:cb) +endfunction + +" receive async response +function! coc#rpc#async_response(id, resp, isErr) abort + if empty(s:client) + return + endif + call coc#client#on_response(s:name, a:id, a:resp, a:isErr) +endfunction + +" send async response to server +function! coc#rpc#async_request(id, method, args) + let l:Cb = {err, ... -> coc#rpc#notify('nvim_async_response_event', [a:id, err, get(a:000, 0, v:null)])} + let args = a:args + [l:Cb] + try + call call(a:method, args) + catch /.*/ + call coc#rpc#notify('nvim_async_response_event', [a:id, v:exception, v:null]) + endtry +endfunction + +function! s:check_vim_enter() abort + if s:client['running'] && v:vim_did_enter + call coc#rpc#notify('VimEnter', [coc#util#path_replace_patterns(), join(globpath(&runtimepath, "", 0, 1), ",")]) + endif +endfunction + +" Used on vim and remote address only +function! s:on_channel_close() abort + if get(g:, 'coc_node_env', '') !=# 'test' + echohl Error | echom '[coc.nvim] channel closed' | echohl None + endif + if !empty(s:client) + let s:client['running'] = 0 + let s:client['channel'] = v:null + let s:client['async_req_id'] = 1 + endif +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/snippet.vim b/pack/acp/opt/coc.nvim/autoload/coc/snippet.vim new file mode 100644 index 0000000..d9375b2 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/snippet.vim @@ -0,0 +1,155 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:map_next = 1 +let s:map_prev = 1 +let s:cmd_mapping = has('nvim') || has('patch-8.2.1978') + +function! coc#snippet#_select_mappings() + if !get(g:, 'coc_selectmode_mapping', 1) + return + endif + + redir => mappings + silent! smap + redir END + + for map in map(filter(split(mappings, '\n'), + \ "v:val !~# '^s' && v:val !~# '^\\a*\\s*<\\S\\+>'"), + \ "matchstr(v:val, '^\\a*\\s*\\zs\\S\\+')") + silent! execute 'sunmap' map + silent! execute 'sunmap ' map + endfor + + " same behaviour of ultisnips + snoremap c + snoremap c + snoremap c + snoremap "_c +endfunction + +function! coc#snippet#show_choices(lnum, col, position, input) abort + call coc#snippet#move(a:position) + call CocActionAsync('startCompletion', { 'source': '$words' }) + redraw +endfunction + +function! coc#snippet#enable(...) + if get(b:, 'coc_snippet_active', 0) == 1 + return + endif + let complete = get(a:, 1, 0) + let b:coc_snippet_active = 1 + call coc#snippet#_select_mappings() + let nextkey = get(g:, 'coc_snippet_next', '') + let prevkey = get(g:, 'coc_snippet_prev', '') + if maparg(nextkey, 'i') =~# 'snippet' + let s:map_next = 0 + endif + if maparg(prevkey, 'i') =~# 'snippet' + let s:map_prev = 0 + endif + if !empty(nextkey) + if s:map_next + execute 'inoremap '.nextkey." =coc#snippet#jump(1, ".complete.")" + endif + execute 'snoremap '.nextkey." :call coc#snippet#jump(1, ".complete.")" + endif + if !empty(prevkey) + if s:map_prev + execute 'inoremap '.prevkey." =coc#snippet#jump(0, ".complete.")" + endif + execute 'snoremap '.prevkey." :call coc#snippet#jump(0, ".complete.")" + endif +endfunction + +function! coc#snippet#prev() abort + call coc#rpc#request('snippetPrev', []) + return '' +endfunction + +function! coc#snippet#next() abort + call coc#rpc#request('snippetNext', []) + return '' +endfunction + +function! coc#snippet#jump(direction, complete) abort + if a:direction == 1 && a:complete + if pumvisible() + let pre = exists('*complete_info') && complete_info()['selected'] == -1 ? "\" : '' + call feedkeys(pre."\", 'in') + return '' + endif + if coc#pum#visible() + " Discard the return value, otherwise weird characters will be inserted + call coc#pum#confirm() + return '' + endif + endif + call coc#rpc#request(a:direction == 1 ? 'snippetNext' : 'snippetPrev', []) + return '' +endfunction + +function! coc#snippet#disable() + if get(b:, 'coc_snippet_active', 0) == 0 + return + endif + let b:coc_snippet_active = 0 + let nextkey = get(g:, 'coc_snippet_next', '') + let prevkey = get(g:, 'coc_snippet_prev', '') + if s:map_next + silent! execute 'iunmap '.nextkey + endif + if s:map_prev + silent! execute 'iunmap '.prevkey + endif + silent! execute 'sunmap '.prevkey + silent! execute 'sunmap '.nextkey +endfunction + +function! coc#snippet#select(start, end, text) abort + if coc#pum#visible() + call coc#pum#close() + endif + if mode() == 's' + call feedkeys("\", 'in') + endif + if &selection ==# 'exclusive' + let cursor = coc#snippet#to_cursor(a:start) + call cursor([cursor[0], cursor[1]]) + let cmd = '' + let cmd .= mode()[0] ==# 'i' ? "\".(col('.') == 1 ? '' : 'l') : '' + let cmd .= printf('v%s', strchars(a:text) . 'l') + let cmd .= "\" + else + let cursor = coc#snippet#to_cursor(a:end) + call cursor([cursor[0], cursor[1] - 1]) + let len = strchars(a:text) - 1 + let cmd = '' + let cmd .= mode()[0] ==# 'i' ? "\l" : '' + let cmd .= printf('v%s', len > 0 ? len . 'h' : '') + let cmd .= "o\" + endif + call feedkeys(cmd, 'n') +endfunction + +function! coc#snippet#move(position) abort + let m = mode() + if m == 's' + call feedkeys("\", 'in') + endif + let pos = coc#snippet#to_cursor(a:position) + call cursor(pos) + if pos[1] > strlen(getline(pos[0])) + startinsert! + else + startinsert + endif +endfunction + +function! coc#snippet#to_cursor(position) abort + let line = getline(a:position.line + 1) + if line is v:null + return [a:position.line + 1, a:position.character + 1] + endif + return [a:position.line + 1, coc#string#byte_index(line, a:position.character) + 1] +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/string.vim b/pack/acp/opt/coc.nvim/autoload/coc/string.vim new file mode 100644 index 0000000..efe77e1 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/string.vim @@ -0,0 +1,210 @@ +scriptencoding utf-8 + +function! coc#string#last_character(line) abort + return strcharpart(a:line, strchars(a:line) - 1, 1) +endfunction + +" Get utf16 code unit index from col (0 based) +function! coc#string#character_index(line, byteIdx) abort + if a:byteIdx <= 0 + return 0 + endif + let i = 0 + for char in split(strpart(a:line, 0, a:byteIdx), '\zs') + let i += char2nr(char) > 65535 ? 2 : 1 + endfor + return i +endfunction + +function! coc#string#common_start(text, other) abort + let arr = split(a:text, '\zs') + let other = split(a:other, '\zs') + let total = min([len(arr), len(other)]) + if total == 0 + return 0 + endif + for i in range(0, total - 1) + if arr[i] !=# other[i] + return i + endif + endfor + return total +endfunction + +" Convert utf16 character index to byte index +function! coc#string#byte_index(line, character) abort + if a:character <= 0 + return 0 + endif + " code unit index + let i = 0 + let len = 0 + for char in split(a:line, '\zs') + let i += char2nr(char) > 65535 ? 2 : 1 + let len += strlen(char) + if i >= a:character + break + endif + endfor + return len +endfunction + +" Get character count from start col and end col, 1 based +function! coc#string#get_char_count(text, start_col, end_col) abort + return strchars(strpart(a:text, a:start_col - 1, a:end_col - a:start_col)) +endfunction + +function! coc#string#character_length(text) abort + let i = 0 + for char in split(a:text, '\zs') + let i += char2nr(char) > 65535 ? 2 : 1 + endfor + return i +endfunction + +function! coc#string#reflow(lines, width) abort + let lines = [] + let currlen = 0 + let parts = [] + for line in a:lines + for part in split(line, '\s\+') + let w = strwidth(part) + if currlen + w + 1 >= a:width + if len(parts) > 0 + call add(lines, join(parts, ' ')) + endif + if w >= a:width + call add(lines, part) + let currlen = 0 + let parts = [] + else + let currlen = w + let parts = [part] + endif + continue + endif + call add(parts, part) + let currlen = currlen + w + 1 + endfor + endfor + if len(parts) > 0 + call add(lines, join(parts, ' ')) + endif + return empty(lines) ? [''] : lines +endfunction + +" Used when 'wrap' and 'linebreak' is enabled +function! coc#string#content_height(lines, width) abort + let len = 0 + let pattern = empty(&breakat) ? '.\zs' : '['.substitute(&breakat, '\([\[\]]\)', '\\\1', 'g').']\zs' + for line in a:lines + if strwidth(line) <= a:width + let len += 1 + else + let currlen = 0 + for part in split(line, pattern) + let wl = strwidth(part) + if currlen == 0 && wl > 0 + let len += 1 + endif + let delta = currlen + wl - a:width + if delta >= 0 + let len = len + (delta > 0) + let currlen = delta == 0 ? 0 : wl + if wl >= a:width + let currlen = wl%a:width + let len += float2nr(ceil(wl/(a:width + 0.0))) - (currlen == 0) + endif + else + let currlen = currlen + wl + endif + endfor + endif + endfor + return len +endfunction + +" get change between two lines +function! coc#string#diff(curr, previous, col) abort + let end = strpart(a:curr, a:col - 1) + let start = strpart(a:curr, 0, a:col -1) + let endOffset = 0 + let startOffset = 0 + let currLen = strchars(a:curr) + let prevLen = strchars(a:previous) + if len(end) + let endLen = strchars(end) + for i in range(min([prevLen, endLen])) + if strcharpart(end, endLen - 1 - i, 1) ==# strcharpart(a:previous, prevLen -1 -i, 1) + let endOffset = endOffset + 1 + else + break + endif + endfor + endif + let remain = endOffset == 0 ? a:previous : strcharpart(a:previous, 0, prevLen - endOffset) + if len(remain) + for i in range(min([strchars(remain), strchars(start)])) + if strcharpart(remain, i, 1) ==# strcharpart(start, i ,1) + let startOffset = startOffset + 1 + else + break + endif + endfor + endif + return { + \ 'start': startOffset, + \ 'end': prevLen - endOffset, + \ 'text': strcharpart(a:curr, startOffset, currLen - startOffset - endOffset) + \ } +endfunction + +function! coc#string#apply(content, diff) abort + let totalLen = strchars(a:content) + let endLen = totalLen - a:diff['end'] + return strcharpart(a:content, 0, a:diff['start']).a:diff['text'].strcharpart(a:content, a:diff['end'], endLen) +endfunction + +" insert inserted to line at position, use ... when result is too long +" line should only contains character has strwidth equals 1 +function! coc#string#compose(line, position, inserted) abort + let width = strwidth(a:line) + let text = a:inserted + let res = a:line + let need_truncate = a:position + strwidth(text) + 1 > width + if need_truncate + let remain = width - a:position - 3 + if remain < 2 + " use text for full line, use first & end of a:line, ignore position + let res = strcharpart(a:line, 0, 1) + let w = strwidth(res) + for i in range(strchars(text)) + let c = strcharpart(text, i, 1) + let a = strwidth(c) + if w + a <= width - 1 + let w = w + a + let res = res . c + endif + endfor + let res = res.strcharpart(a:line, w) + else + let res = strcharpart(a:line, 0, a:position) + let w = strwidth(res) + for i in range(strchars(text)) + let c = strcharpart(text, i, 1) + let a = strwidth(c) + if w + a <= width - 3 + let w = w + a + let res = res . c + endif + endfor + let res = res.'..' + let w = w + 2 + let res = res . strcharpart(a:line, w) + endif + else + let first = strcharpart(a:line, 0, a:position) + let res = first . text . strcharpart(a:line, a:position + strwidth(text)) + endif + return res +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/task.vim b/pack/acp/opt/coc.nvim/autoload/coc/task.vim new file mode 100644 index 0000000..80ff02f --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/task.vim @@ -0,0 +1,179 @@ +" ============================================================================ +" Description: Manage long running tasks. +" Author: Qiming Zhao +" Licence: Anti 966 licence +" Version: 0.1 +" Last Modified: Dec 12, 2020 +" ============================================================================ +scriptencoding utf-8 + +let s:is_vim = !has('nvim') +let s:running_task = {} +" neovim emit strings that part of lines. +let s:out_remain_text = {} +let s:err_remain_text = {} + +function! coc#task#start(id, opts) + if coc#task#running(a:id) + call coc#task#stop(a:id) + endif + let cmd = [a:opts['cmd']] + get(a:opts, 'args', []) + let cwd = get(a:opts, 'cwd', getcwd()) + let env = get(a:opts, 'env', {}) + " cmd args cwd pty + if s:is_vim + let options = { + \ 'cwd': cwd, + \ 'err_mode': 'nl', + \ 'out_mode': 'nl', + \ 'err_cb': {channel, message -> s:on_stderr(a:id, [message])}, + \ 'out_cb': {channel, message -> s:on_stdout(a:id, [message])}, + \ 'exit_cb': {channel, code -> s:on_exit(a:id, code)}, + \ 'env': env, + \} + if has("patch-8.1.350") + let options['noblock'] = 1 + endif + if get(a:opts, 'pty', 0) + let options['pty'] = 1 + endif + let job = job_start(cmd, options) + let status = job_status(job) + if status !=# 'run' + echohl Error | echom 'Failed to start '.a:id.' task' | echohl None + return v:false + endif + let s:running_task[a:id] = job + else + let options = { + \ 'cwd': cwd, + \ 'on_stderr': {channel, msgs -> s:on_stderr(a:id, msgs)}, + \ 'on_stdout': {channel, msgs -> s:on_stdout(a:id, msgs)}, + \ 'on_exit': {channel, code -> s:on_exit(a:id, code)}, + \ 'detach': get(a:opts, 'detach', 0), + \} + let original = {} + if !empty(env) + if has('nvim-0.5.0') + let options['env'] = env + elseif exists('*setenv') && exists('*getenv') + for key in keys(env) + let original[key] = getenv(key) + call setenv(key, env[key]) + endfor + endif + endif + if get(a:opts, 'pty', 0) + let options['pty'] = 1 + endif + let chan_id = jobstart(cmd, options) + if !empty(original) + for key in keys(original) + call setenv(key, original[key]) + endfor + endif + if chan_id <= 0 + echohl Error | echom 'Failed to start '.a:id.' task' | echohl None + return v:false + endif + let s:running_task[a:id] = chan_id + endif + return v:true +endfunction + +function! coc#task#stop(id) + let job = get(s:running_task, a:id, v:null) + if !job | return | endif + if s:is_vim + call job_stop(job, 'term') + else + call jobstop(job) + endif + sleep 50m + let running = coc#task#running(a:id) + if running + echohl Error | echom 'job '.a:id. ' stop failed.' | echohl None + endif +endfunction + +function! s:on_exit(id, code) abort + if get(g:, 'coc_vim_leaving', 0) | return | endif + if has('nvim') + let s:out_remain_text[a:id] = '' + let s:err_remain_text[a:id] = '' + endif + if has_key(s:running_task, a:id) + call remove(s:running_task, a:id) + endif + call coc#rpc#notify('TaskExit', [a:id, a:code]) +endfunction + +function! s:on_stderr(id, msgs) + if get(g:, 'coc_vim_leaving', 0) | return | endif + if empty(a:msgs) + return + endif + if s:is_vim + call coc#rpc#notify('TaskStderr', [a:id, a:msgs]) + else + let remain = get(s:err_remain_text, a:id, '') + let eof = (a:msgs == ['']) + let msgs = copy(a:msgs) + if len(remain) > 0 + if msgs[0] == '' + let msgs[0] = remain + else + let msgs[0] = remain . msgs[0] + endif + endif + let last = msgs[len(msgs) - 1] + let s:err_remain_text[a:id] = len(last) > 0 ? last : '' + " all lines from 0 to n - 2 + if len(msgs) > 1 + call coc#rpc#notify('TaskStderr', [a:id, msgs[:len(msgs)-2]]) + elseif eof && len(msgs[0]) > 0 + call coc#rpc#notify('TaskStderr', [a:id, msgs]) + endif + endif +endfunction + +function! s:on_stdout(id, msgs) + if empty(a:msgs) + return + endif + if s:is_vim + call coc#rpc#notify('TaskStdout', [a:id, a:msgs]) + else + let remain = get(s:out_remain_text, a:id, '') + let eof = (a:msgs == ['']) + let msgs = copy(a:msgs) + if len(remain) > 0 + if msgs[0] == '' + let msgs[0] = remain + else + let msgs[0] = remain . msgs[0] + endif + endif + let last = msgs[len(msgs) - 1] + let s:out_remain_text[a:id] = len(last) > 0 ? last : '' + " all lines from 0 to n - 2 + if len(msgs) > 1 + call coc#rpc#notify('TaskStdout', [a:id, msgs[:len(msgs)-2]]) + elseif eof && len(msgs[0]) > 0 + call coc#rpc#notify('TaskStdout', [a:id, msgs]) + endif + endif +endfunction + +function! coc#task#running(id) + if !has_key(s:running_task, a:id) == 1 + return v:false + endif + let job = s:running_task[a:id] + if s:is_vim + let status = job_status(job) + return status ==# 'run' + endif + let [code] = jobwait([job], 10) + return code == -1 +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/terminal.vim b/pack/acp/opt/coc.nvim/autoload/coc/terminal.vim new file mode 100644 index 0000000..b0dbe6d --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/terminal.vim @@ -0,0 +1,115 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:channel_map = {} +let s:is_win = has('win32') || has('win64') + +" start terminal, return [bufnr, pid] +function! coc#terminal#start(cmd, cwd, env, strict) abort + if s:is_vim && !has('terminal') + throw 'terminal feature not supported by current vim.' + endif + let cwd = empty(a:cwd) ? getcwd() : a:cwd + execute 'belowright '.get(g:, 'coc_terminal_height', 8).'new +setl\ buftype=nofile' + setl winfixheight + setl norelativenumber + setl nonumber + setl bufhidden=hide + if exists('#User#CocTerminalOpen') + exe 'doautocmd User CocTerminalOpen' + endif + let bufnr = bufnr('%') + let env = {} + let original = {} + if !empty(a:env) + " use env option when possible + if s:is_vim + let env = copy(a:env) + elseif exists('*setenv') + for key in keys(a:env) + let original[key] = getenv(key) + call setenv(key, a:env[key]) + endfor + endif + endif + + function! s:OnExit(status) closure + call coc#rpc#notify('CocAutocmd', ['TermExit', bufnr, a:status]) + if a:status == 0 + execute 'silent! bd! '.bufnr + endif + endfunction + + if has('nvim') + let job_id = termopen(a:cmd, { + \ 'cwd': cwd, + \ 'pty': v:true, + \ 'on_exit': {job, status -> s:OnExit(status)}, + \ 'env': env, + \ 'clear_env': a:strict ? v:true : v:false + \ }) + if !empty(original) && exists('*setenv') + for key in keys(original) + call setenv(key, original[key]) + endfor + endif + if job_id == 0 + throw 'create terminal job failed' + endif + wincmd p + let s:channel_map[bufnr] = job_id + return [bufnr, jobpid(job_id)] + else + let cmd = s:is_win ? join(a:cmd, ' ') : a:cmd + let res = term_start(cmd, { + \ 'cwd': cwd, + \ 'term_kill': s:is_win ? 'kill' : 'term', + \ 'term_finish': 'close', + \ 'exit_cb': {job, status -> s:OnExit(status)}, + \ 'curwin': 1, + \ 'env': env, + \}) + if res == 0 + throw 'create terminal job failed' + endif + let job = term_getjob(bufnr) + let s:channel_map[bufnr] = job_getchannel(job) + wincmd p + return [bufnr, job_info(job).process] + endif +endfunction + +function! coc#terminal#send(bufnr, text, add_new_line) abort + let chan = get(s:channel_map, a:bufnr, v:null) + if empty(chan) | return| endif + if has('nvim') + let lines = split(a:text, '\v\r?\n') + if a:add_new_line && !empty(lines[len(lines) - 1]) + if s:is_win + call add(lines, "\r\n") + else + call add(lines, '') + endif + endif + call chansend(chan, lines) + let winid = bufwinid(a:bufnr) + if winid != -1 + call coc#compat#execute(winid, 'noa normal! G') + endif + else + if !a:add_new_line + call ch_sendraw(chan, a:text) + else + call ch_sendraw(chan, a:text.(s:is_win ? "\r\n" : "\n")) + endif + endif +endfunction + +function! coc#terminal#close(bufnr) abort + if has('nvim') + let job_id = get(s:channel_map, a:bufnr, 0) + if !empty(job_id) + silent! call chanclose(job_id) + endif + endif + exe 'silent! bd! '.a:bufnr +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/ui.vim b/pack/acp/opt/coc.nvim/autoload/coc/ui.vim new file mode 100644 index 0000000..a01d177 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/ui.vim @@ -0,0 +1,567 @@ +let s:is_vim = !has('nvim') +let s:is_win = has('win32') || has('win64') +let s:is_mac = has('mac') +let s:sign_api = exists('*sign_getplaced') && exists('*sign_place') +let s:sign_groups = [] +let s:outline_preview_bufnr = 0 + +" Check and +function! coc#ui#check_pum_keymappings(trigger) abort + if a:trigger !=# 'none' + for key in ['', '', '', ''] + let arg = maparg(key, 'i', 0, 1) + if get(arg, 'expr', 0) + let rhs = get(arg, 'rhs', '') + if rhs =~# '\"', 'coc#pum#next(1)', '') + let rhs = substitute(rhs, '\c"\\"', 'coc#pum#prev(1)', '') + let rhs = substitute(rhs, '\c"\\"', 'coc#pum#confirm()', '') + execute 'inoremap '.arg['lhs'].' '.rhs + endif + endif + endfor + endif +endfunction + +function! coc#ui#quickpick(title, items, cb) abort + if exists('*popup_menu') + function! s:QuickpickHandler(id, result) closure + call a:cb(v:null, a:result) + endfunction + function! s:QuickpickFilter(id, key) closure + for i in range(1, len(a:items)) + if a:key == string(i) + call popup_close(a:id, i) + return 1 + endif + endfor + " No shortcut, pass to generic filter + return popup_filter_menu(a:id, a:key) + endfunction + try + call popup_menu(a:items, { + \ 'title': a:title, + \ 'filter': function('s:QuickpickFilter'), + \ 'callback': function('s:QuickpickHandler'), + \ }) + redraw + catch /.*/ + call a:cb(v:exception) + endtry + else + let res = inputlist([a:title] + a:items) + call a:cb(v:null, res) + endif +endfunction + +" cmd, cwd +function! coc#ui#open_terminal(opts) abort + if s:is_vim && !exists('*term_start') + echohl WarningMsg | echon "Your vim doesn't have terminal support!" | echohl None + return + endif + if get(a:opts, 'position', 'bottom') ==# 'bottom' + let p = '5new' + else + let p = 'vnew' + endif + execute 'belowright '.p.' +setl\ buftype=nofile ' + setl buftype=nofile + setl winfixheight + setl norelativenumber + setl nonumber + setl bufhidden=wipe + if exists('#User#CocTerminalOpen') + exe 'doautocmd User CocTerminalOpen' + endif + let cmd = get(a:opts, 'cmd', '') + let autoclose = get(a:opts, 'autoclose', 1) + if empty(cmd) + throw 'command required!' + endif + let cwd = get(a:opts, 'cwd', getcwd()) + let keepfocus = get(a:opts, 'keepfocus', 0) + let bufnr = bufnr('%') + let Callback = get(a:opts, 'Callback', v:null) + + function! s:OnExit(status) closure + let content = join(getbufline(bufnr, 1, '$'), "\n") + if a:status == 0 && autoclose == 1 + execute 'silent! bd! '.bufnr + endif + if !empty(Callback) + call call(Callback, [a:status, bufnr, content]) + endif + endfunction + + if has('nvim') + call termopen(cmd, { + \ 'cwd': cwd, + \ 'on_exit': {job, status -> s:OnExit(status)}, + \}) + else + if s:is_win + let cmd = 'cmd.exe /C "'.cmd.'"' + endif + call term_start(cmd, { + \ 'cwd': cwd, + \ 'exit_cb': {job, status -> s:OnExit(status)}, + \ 'curwin': 1, + \}) + endif + if keepfocus + wincmd p + endif + return bufnr +endfunction + +" run command in terminal +function! coc#ui#run_terminal(opts, cb) + let cmd = get(a:opts, 'cmd', '') + if empty(cmd) + return a:cb('command required for terminal') + endif + let opts = { + \ 'cmd': cmd, + \ 'cwd': empty(get(a:opts, 'cwd', '')) ? getcwd() : a:opts['cwd'], + \ 'keepfocus': get(a:opts, 'keepfocus', 0), + \ 'Callback': {status, bufnr, content -> a:cb(v:null, {'success': status == 0 ? v:true : v:false, 'bufnr': bufnr, 'content': content})} + \} + call coc#ui#open_terminal(opts) +endfunction + +function! coc#ui#echo_hover(msg) + echohl MoreMsg + echo a:msg + echohl None + let g:coc_last_hover_message = a:msg +endfunction + +function! coc#ui#echo_messages(hl, msgs) + if a:hl !~# 'Error' && (mode() !~# '\v^(i|n)$') + return + endif + let msgs = filter(copy(a:msgs), '!empty(v:val)') + if empty(msgs) + return + endif + execute 'echohl '.a:hl + echo join(msgs, "\n") + echohl None +endfunction + +function! coc#ui#preview_info(lines, filetype, ...) abort + pclose + keepalt new +setlocal\ previewwindow|setlocal\ buftype=nofile|setlocal\ noswapfile|setlocal\ wrap [Document] + setl bufhidden=wipe + setl nobuflisted + setl nospell + exe 'setl filetype='.a:filetype + setl conceallevel=0 + setl nofoldenable + for command in a:000 + execute command + endfor + call append(0, a:lines) + exe "normal! z" . len(a:lines) . "\" + exe "normal! gg" + wincmd p +endfunction + +function! coc#ui#open_files(files) + let bufnrs = [] + " added on latest vim8 + if exists('*bufadd') && exists('*bufload') + for file in a:files + let file = fnamemodify(file, ':.') + if bufloaded(file) + call add(bufnrs, bufnr(file)) + else + let bufnr = bufadd(file) + call bufload(file) + call add(bufnrs, bufnr) + call setbufvar(bufnr, '&buflisted', 1) + endif + endfor + else + noa keepalt 1new +setl\ bufhidden=wipe + for file in a:files + let file = fnamemodify(file, ':.') + execute 'noa edit +setl\ bufhidden=hide '.fnameescape(file) + if &filetype ==# '' + filetype detect + endif + call add(bufnrs, bufnr('%')) + endfor + noa close + endif + doautocmd BufEnter + return bufnrs +endfunction + +function! coc#ui#echo_lines(lines) + echo join(a:lines, "\n") +endfunction + +function! coc#ui#echo_signatures(signatures) abort + if pumvisible() | return | endif + echo "" + for i in range(len(a:signatures)) + call s:echo_signature(a:signatures[i]) + if i != len(a:signatures) - 1 + echon "\n" + endif + endfor +endfunction + +function! s:echo_signature(parts) + for part in a:parts + let hl = get(part, 'type', 'Normal') + let text = get(part, 'text', '') + if !empty(text) + execute 'echohl '.hl + execute "echon '".substitute(text, "'", "''", 'g')."'" + echohl None + endif + endfor +endfunction + +function! coc#ui#iterm_open(dir) + return s:osascript( + \ 'if application "iTerm2" is not running', + \ 'error', + \ 'end if') && s:osascript( + \ 'tell application "iTerm2"', + \ 'tell current window', + \ 'create tab with default profile', + \ 'tell current session', + \ 'write text "cd ' . a:dir . '"', + \ 'write text "clear"', + \ 'activate', + \ 'end tell', + \ 'end tell', + \ 'end tell') +endfunction + +function! s:osascript(...) abort + let args = join(map(copy(a:000), '" -e ".shellescape(v:val)'), '') + call s:system('osascript'. args) + return !v:shell_error +endfunction + +function! s:system(cmd) + let output = system(a:cmd) + if v:shell_error && output !=# "" + echohl Error | echom output | echohl None + return + endif + return output +endfunction + +function! coc#ui#set_lines(bufnr, changedtick, original, replacement, start, end, changes, cursor, col) abort + if !bufloaded(a:bufnr) + return + endif + let delta = 0 + if !empty(a:col) + let delta = col('.') - a:col + endif + if getbufvar(a:bufnr, 'changedtick') > a:changedtick && bufnr('%') == a:bufnr + " try apply current line change + let lnum = line('.') + " change for current line + if a:end - a:start == 1 && a:end == lnum && len(a:replacement) == 1 + let idx = a:start - lnum + 1 + let previous = get(a:original, idx, 0) + if type(previous) == 1 + let content = getline('.') + if previous !=# content + let diff = coc#string#diff(content, previous, col('.')) + let changed = get(a:replacement, idx, 0) + if type(changed) == 1 && strcharpart(previous, 0, diff['end']) ==# strcharpart(changed, 0, diff['end']) + let applied = coc#string#apply(changed, diff) + let replacement = copy(a:replacement) + let replacement[idx] = applied + call coc#compat#buf_set_lines(a:bufnr, a:start, a:end, replacement) + return + endif + endif + endif + endif + endif + if exists('*nvim_buf_set_text') && !empty(a:changes) + for item in reverse(copy(a:changes)) + call nvim_buf_set_text(a:bufnr, item[1], item[2], item[3], item[4], item[0]) + endfor + else + call coc#compat#buf_set_lines(a:bufnr, a:start, a:end, a:replacement) + endif + if !empty(a:cursor) + call cursor(a:cursor[0], a:cursor[1] + delta) + endif +endfunction + +function! coc#ui#change_lines(bufnr, list) abort + if !bufloaded(a:bufnr) | return v:null | endif + undojoin + if exists('*setbufline') + for [lnum, line] in a:list + call setbufline(a:bufnr, lnum + 1, line) + endfor + elseif a:bufnr == bufnr('%') + for [lnum, line] in a:list + call setline(lnum + 1, line) + endfor + else + let bufnr = bufnr('%') + exe 'noa buffer '.a:bufnr + for [lnum, line] in a:list + call setline(lnum + 1, line) + endfor + exe 'noa buffer '.bufnr + endif +endfunction + +function! coc#ui#open_url(url) + if isdirectory(a:url) && $TERM_PROGRAM ==# "iTerm.app" + call coc#ui#iterm_open(a:url) + return + endif + if !empty(get(g:, 'coc_open_url_command', '')) + call system(g:coc_open_url_command.' '.a:url) + return + endif + if has('mac') && executable('open') + call system('open '.a:url) + return + endif + if executable('xdg-open') + call system('xdg-open '.a:url) + return + endif + call system('cmd /c start "" /b '. substitute(a:url, '&', '^&', 'g')) + if v:shell_error + echohl Error | echom 'Failed to open '.a:url | echohl None + return + endif +endfunction + +function! coc#ui#rename_file(oldPath, newPath, write) abort + let bufnr = bufnr(a:oldPath) + if bufnr == -1 + throw 'Unable to get bufnr of '.a:oldPath + endif + if a:oldPath =~? a:newPath && (s:is_mac || s:is_win) + return coc#ui#safe_rename(bufnr, a:oldPath, a:newPath, a:write) + endif + if bufloaded(a:newPath) + execute 'silent bdelete! '.bufnr(a:newPath) + endif + let current = bufnr == bufnr('%') + let bufname = fnamemodify(a:newPath, ":~:.") + let filepath = fnamemodify(bufname(bufnr), '%:p') + let winid = coc#compat#buf_win_id(bufnr) + let curr = -1 + if winid == -1 + let curr = win_getid() + let file = fnamemodify(bufname(bufnr), ':.') + execute 'keepalt tab drop '.fnameescape(bufname(bufnr)) + let winid = win_getid() + endif + call coc#compat#execute(winid, 'keepalt file '.fnameescape(bufname), 'silent') + call coc#compat#execute(winid, 'doautocmd BufEnter') + if a:write + call coc#compat#execute(winid, 'noa write!', 'silent') + call delete(filepath, '') + endif + if curr != -1 + call win_gotoid(curr) + endif + return bufnr +endfunction + +" System is case in sensitive and newPath have different case. +function! coc#ui#safe_rename(bufnr, oldPath, newPath, write) abort + let winid = win_getid() + let lines = getbufline(a:bufnr, 1, '$') + execute 'keepalt tab drop '.fnameescape(fnamemodify(a:oldPath, ':.')) + let view = winsaveview() + execute 'keepalt bwipeout! '.a:bufnr + if a:write + call delete(a:oldPath, '') + endif + execute 'keepalt edit '.fnameescape(fnamemodify(a:newPath, ':~:.')) + let bufnr = bufnr('%') + call coc#compat#buf_set_lines(bufnr, 0, -1, lines) + if a:write + execute 'noa write' + endif + call winrestview(view) + call win_gotoid(winid) + return bufnr +endfunction + +function! coc#ui#sign_unplace() abort + if exists('*sign_unplace') + for group in s:sign_groups + call sign_unplace(group) + endfor + endif +endfunction + +function! coc#ui#update_signs(bufnr, group, signs) abort + if !s:sign_api || !bufloaded(a:bufnr) + return + endif + call sign_unplace(a:group, {'buffer': a:bufnr}) + for def in a:signs + let opts = {'lnum': def['lnum']} + if has_key(def, 'priority') + let opts['priority'] = def['priority'] + endif + call sign_place(0, a:group, def['name'], a:bufnr, opts) + endfor +endfunction + +function! coc#ui#outline_preview(config) abort + let view_id = get(w:, 'cocViewId', '') + if view_id !=# 'OUTLINE' + return + endif + let wininfo = get(getwininfo(win_getid()), 0, v:null) + if empty(wininfo) + return + endif + let border = get(a:config, 'border', v:true) + let th = &lines - &cmdheight - 2 + let range = a:config['range'] + let height = min([range['end']['line'] - range['start']['line'] + 1, th - 4]) + let to_left = &columns - wininfo['wincol'] - wininfo['width'] < wininfo['wincol'] + let start_lnum = range['start']['line'] + 1 + let end_lnum = range['end']['line'] + 1 - start_lnum > &lines ? start_lnum + &lines : range['end']['line'] + 1 + let lines = getbufline(a:config['bufnr'], start_lnum, end_lnum) + let content_width = max(map(copy(lines), 'strdisplaywidth(v:val)')) + let width = min([content_width, a:config['maxWidth'], to_left ? wininfo['wincol'] - 3 : &columns - wininfo['wincol'] - wininfo['width']]) + let filetype = getbufvar(a:config['bufnr'], '&filetype') + let cursor_row = coc#cursor#screen_pos()[0] + let config = { + \ 'relative': 'editor', + \ 'row': cursor_row - 1 + height < th ? cursor_row - (border ? 1 : 0) : th - height - (border ? 1 : -1), + \ 'col': to_left ? wininfo['wincol'] - 4 - width : wininfo['wincol'] + wininfo['width'], + \ 'width': width, + \ 'height': height, + \ 'lines': lines, + \ 'border': border ? [1,1,1,1] : v:null, + \ 'rounded': get(a:config, 'rounded', 1) ? 1 : 0, + \ 'winblend': a:config['winblend'], + \ 'highlight': a:config['highlight'], + \ 'borderhighlight': a:config['borderhighlight'], + \ } + let winid = coc#float#get_float_by_kind('outline-preview') + let result = coc#float#create_float_win(winid, s:outline_preview_bufnr, config) + if empty(result) + return v:null + endif + call setwinvar(result[0], 'kind', 'outline-preview') + let s:outline_preview_bufnr = result[1] + if !empty(filetype) + call coc#compat#execute(result[0], 'setfiletype '.filetype) + endif + return result[1] +endfunction + +function! coc#ui#outline_close_preview() abort + let winid = coc#float#get_float_by_kind('outline-preview') + if winid + call coc#float#close(winid) + endif +endfunction + +" Ignore error from autocmd when file opened +function! coc#ui#safe_open(cmd, file) abort + let bufname = fnameescape(a:file) + try + execute a:cmd.' 'bufname + catch /.*/ + if bufname('%') != bufname + throw v:exception + endif + endtry +endfunction + +" Use noa to setloclist, avoid BufWinEnter autocmd +function! coc#ui#setloclist(nr, items, action, title) abort + if a:action ==# ' ' + let title = get(getloclist(a:nr, {'title': 1}), 'title', '') + let action = title ==# a:title ? 'r' : ' ' + noa call setloclist(a:nr, [], action, {'title': a:title, 'items': a:items}) + else + noa call setloclist(a:nr, [], a:action, {'title': a:title, 'items': a:items}) + endif +endfunction + +function! coc#ui#get_mouse() abort + if get(g:, 'coc_node_env', '') ==# 'test' + return get(g:, 'mouse_position', [win_getid(), line('.'), col('.')]) + endif + return [v:mouse_winid,v:mouse_lnum,v:mouse_col] +endfunction + +" viewId - identifier of tree view +" bufnr - bufnr tree view +" winid - winid of tree view +" bufname - bufname of tree view +" command - split command +" optional options - bufhidden, canSelectMany, winfixwidth +function! coc#ui#create_tree(opts) abort + let viewId = a:opts['viewId'] + let bufname = a:opts['bufname'] + let tabid = coc#util#tabnr_id(tabpagenr()) + let winid = s:get_tree_winid(a:opts) + let bufnr = a:opts['bufnr'] + if !bufloaded(bufnr) + let bufnr = -1 + endif + if winid != -1 + call win_gotoid(winid) + if bufnr('%') == bufnr + return [bufnr, winid, tabid] + elseif bufnr != -1 + execute 'silent keepalt buffer '.bufnr + else + execute 'silent keepalt edit +setl\ buftype=nofile '.bufname + call s:set_tree_defaults(a:opts) + endif + else + " need to split + let cmd = get(a:opts, 'command', 'belowright 30vs') + execute 'silent keepalt '.cmd.' +setl\ buftype=nofile '.bufname + call s:set_tree_defaults(a:opts) + let winid = win_getid() + endif + let w:cocViewId = viewId + return [winbufnr(winid), winid, tabid] +endfunction + +" valid window id or -1 +function! s:get_tree_winid(opts) abort + let viewId = a:opts['viewId'] + let winid = a:opts['winid'] + if winid != -1 && coc#window#visible(winid) + return winid + endif + if winid != -1 + call coc#compat#execute(winid, 'noa close!', 'silent!') + endif + return coc#window#find('cocViewId', viewId) +endfunction + +function! s:set_tree_defaults(opts) abort + let bufhidden = get(a:opts, 'bufhidden', 'wipe') + let signcolumn = get(a:opts, 'canSelectMany', v:false) ? 'yes' : 'no' + let winfixwidth = get(a:opts, 'winfixwidth', v:false) ? ' winfixwidth' : '' + execute 'setl bufhidden='.bufhidden.' signcolumn='.signcolumn.winfixwidth + setl nolist nonumber norelativenumber foldcolumn=0 + setl nocursorline nobuflisted wrap undolevels=-1 filetype=coctree nomodifiable noswapfile +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/util.vim b/pack/acp/opt/coc.nvim/autoload/coc/util.vim new file mode 100644 index 0000000..74ba42b --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/util.vim @@ -0,0 +1,659 @@ +scriptencoding utf-8 +let s:root = expand(':h:h:h') +let s:is_win = has('win32') || has('win64') +let s:is_vim = !has('nvim') +let s:vim_api_version = 34 + +function! coc#util#merge_winhl(curr, hls) abort + let highlightMap = {} + for parts in map(split(a:curr, ','), 'split(v:val, ":")') + if len(parts) == 2 + let highlightMap[parts[0]] = parts[1] + endif + endfor + for item in a:hls + let highlightMap[item[0]] = item[1] + endfor + return join(map(items(highlightMap), 'v:val[0].":".v:val[1]'), ',') +endfunction + +function! coc#util#api_version() abort + return s:vim_api_version +endfunction + +function! coc#util#semantic_hlgroups() abort + let res = split(execute('hi'), "\n") + let filtered = filter(res, "v:val =~# '^CocSem' && v:val !~# ' cleared$'") + return map(filtered, "matchstr(v:val,'\\v^CocSem\\w+')") +endfunction + +" get cursor position +function! coc#util#cursor() + return [line('.') - 1, coc#string#character_length(strpart(getline('.'), 0, col('.') - 1))] +endfunction + +function! coc#util#change_info() abort + return {'lnum': line('.'), 'col': col('.'), 'line': getline('.'), 'changedtick': b:changedtick} +endfunction + +function! coc#util#jumpTo(line, character) abort + echohl WarningMsg | echon 'coc#util#jumpTo is deprecated, use coc#cursor#move_to instead.' | echohl None + call coc#cursor#move_to(a:line, a:character) +endfunction + +function! coc#util#root_patterns() abort + return coc#rpc#request('rootPatterns', [bufnr('%')]) +endfunction + +function! coc#util#get_config(key) abort + return coc#rpc#request('getConfig', [a:key]) +endfunction + +function! coc#util#open_terminal(opts) abort + return coc#ui#open_terminal(a:opts) +endfunction + +function! coc#util#synname() abort + return synIDattr(synID(line('.'), col('.') - 1, 1), 'name') +endfunction + +function! coc#util#setline(lnum, line) + keepjumps call setline(a:lnum, a:line) +endfunction + +function! coc#util#path_replace_patterns() abort + if has('win32unix') && exists('g:coc_cygqwin_path_prefixes') + echohl WarningMsg + echon 'g:coc_cygqwin_path_prefixes is deprecated, use g:coc_uri_prefix_replace_patterns instead' + echohl None + return g:coc_cygqwin_path_prefixes + endif + if exists('g:coc_uri_prefix_replace_patterns') + return g:coc_uri_prefix_replace_patterns + endif + return v:null +endfunction + +function! coc#util#version() + if s:is_vim + return string(v:versionlong) + endif + let c = execute('silent version') + let lines = split(matchstr(c, 'NVIM v\zs[^\n-]*')) + return lines[0] +endfunction + +function! coc#util#check_refresh(bufnr) + if !bufloaded(a:bufnr) + return 0 + endif + if getbufvar(a:bufnr, 'coc_diagnostic_disable', 0) + return 0 + endif + return 1 +endfunction + +function! coc#util#diagnostic_info(bufnr, checkInsert) abort + let checked = coc#util#check_refresh(a:bufnr) + if !checked + return v:null + endif + if a:checkInsert && mode() =~# '^i' + return v:null + endif + let locationlist = '' + let winid = -1 + for info in getwininfo() + if info['bufnr'] == a:bufnr + let winid = info['winid'] + let locationlist = get(getloclist(winid, {'title': 1}), 'title', '') + break + endif + endfor + return { + \ 'bufnr': bufnr('%'), + \ 'winid': winid, + \ 'lnum': winid == -1 ? -1 : coc#window#get_cursor(winid)[0], + \ 'locationlist': locationlist + \ } +endfunction + +function! coc#util#open_file(cmd, file) + execute a:cmd .' '.fnameescape(fnamemodify(a:file, ':~:.')) + return bufnr('%') +endfunction + +function! coc#util#job_command() + if (has_key(g:, 'coc_node_path')) + let node = expand(g:coc_node_path) + else + let node = $COC_NODE_PATH == '' ? 'node' : $COC_NODE_PATH + endif + if !executable(node) + echohl Error | echom '[coc.nvim] "'.node.'" is not executable, checkout https://nodejs.org/en/download/' | echohl None + return + endif + if !filereadable(s:root.'/build/index.js') + if isdirectory(s:root.'/src') + echohl Error | echom '[coc.nvim] build/index.js not found, please install dependencies and compile coc.nvim by: yarn install' | echohl None + else + echohl Error | echon '[coc.nvim] your coc.nvim is broken.' | echohl None + endif + return + endif + return [node] + get(g:, 'coc_node_args', ['--no-warnings']) + [s:root.'/build/index.js'] +endfunction + +function! coc#util#jump(cmd, filepath, ...) abort + if a:cmd != 'pedit' + silent! normal! m' + endif + let path = a:filepath + if has('win32unix') + let path = substitute(a:filepath, '\v\\', '/', 'g') + endif + let file = fnamemodify(path, ":~:.") + if a:cmd ==# 'pedit' + let extra = empty(get(a:, 1, [])) ? '' : '+'.(a:1[0] + 1) + exe 'pedit '.extra.' '.fnameescape(file) + return + elseif a:cmd ==# 'drop' + let dstbuf = bufadd(path) + let binfo = getbufinfo(dstbuf) + if len(binfo) == 1 && empty(binfo[0].windows) + execute 'buffer '.dstbuf + let &buflisted = 1 + else + let saved = &wildignore + set wildignore= + execute 'drop '.fnameescape(file) + execute 'set wildignore='.saved + endif + elseif a:cmd ==# 'edit' && bufloaded(file) + exe 'b '.bufnr(file) + else + call s:safer_open(a:cmd, file) + endif + if !empty(get(a:, 1, [])) + let line = getline(a:1[0] + 1) + let col = coc#string#byte_index(line, a:1[1]) + 1 + call cursor(a:1[0] + 1, col) + endif + if &filetype ==# '' + filetype detect + endif + if s:is_vim + redraw + endif +endfunction + +function! s:safer_open(cmd, file) abort + " How to support :pedit and :drop? + let is_supported_cmd = index(["edit", "split", "vsplit", "tabe"], a:cmd) >= 0 + + " Use special handling only for URI. + let looks_like_uri = match(a:file, "^.*://") >= 0 + + if looks_like_uri && is_supported_cmd && has('win32') && exists('*bufadd') + " Workaround a bug for Win32 paths. + " + " reference: + " - https://github.com/vim/vim/issues/541 + " - https://github.com/neoclide/coc-java/issues/82 + " - https://github.com/vim-jp/issues/issues/6 + let buf = bufadd(a:file) + if a:cmd != 'edit' + " Open split, tab, etc. by a:cmd. + execute a:cmd + endif + " Set current buffer to the file + exe 'keepjumps buffer ' . buf + else + if a:cmd =~# 'drop' + let saved = &wildignore + set wildignore= + execute a:cmd.' '.fnameescape(a:file) + execute 'set wildignore='.saved + else + execute a:cmd.' '.fnameescape(a:file) + endif + endif +endfunction + +function! coc#util#variables(bufnr) abort + let info = getbufinfo(a:bufnr) + let variables = empty(info) ? {} : copy(info[0]['variables']) + for key in keys(variables) + if key !~# '\v^coc' + unlet variables[key] + endif + endfor + return variables +endfunction + +function! coc#util#with_callback(method, args, cb) + function! s:Cb() closure + try + let res = call(a:method, a:args) + call a:cb(v:null, res) + catch /.*/ + call a:cb(v:exception) + endtry + endfunction + let timeout = s:is_vim ? 10 : 0 + call timer_start(timeout, {-> s:Cb() }) +endfunction + +function! coc#util#timer(method, args) + call timer_start(0, { -> s:Call(a:method, a:args)}) +endfunction + +function! s:Call(method, args) + try + call call(a:method, a:args) + redraw + catch /.*/ + return 0 + endtry +endfunction + +function! coc#util#vim_info() + return { + \ 'root': s:root, + \ 'apiversion': s:vim_api_version, + \ 'mode': mode(), + \ 'config': get(g:, 'coc_user_config', {}), + \ 'floating': has('nvim') && exists('*nvim_open_win') ? v:true : v:false, + \ 'extensionRoot': coc#util#extension_root(), + \ 'globalExtensions': get(g:, 'coc_global_extensions', []), + \ 'lines': &lines, + \ 'columns': &columns, + \ 'cmdheight': &cmdheight, + \ 'pid': coc#util#getpid(), + \ 'filetypeMap': get(g:, 'coc_filetype_map', {}), + \ 'version': coc#util#version(), + \ 'pumevent': 1, + \ 'isVim': has('nvim') ? v:false : v:true, + \ 'isCygwin': has('win32unix') ? v:true : v:false, + \ 'isMacvim': has('gui_macvim') ? v:true : v:false, + \ 'isiTerm': $TERM_PROGRAM ==# "iTerm.app", + \ 'colorscheme': get(g:, 'colors_name', ''), + \ 'workspaceFolders': get(g:, 'WorkspaceFolders', v:null), + \ 'background': &background, + \ 'runtimepath': join(globpath(&runtimepath, '', 0, 1), ','), + \ 'locationlist': get(g:,'coc_enable_locationlist', 1), + \ 'progpath': v:progpath, + \ 'guicursor': &guicursor, + \ 'pumwidth': exists('&pumwidth') ? &pumwidth : 15, + \ 'tabCount': tabpagenr('$'), + \ 'updateHighlight': has('nvim-0.5.0') || has('textprop') ? v:true : v:false, + \ 'vimCommands': get(g:, 'coc_vim_commands', []), + \ 'sign': exists('*sign_place') && exists('*sign_unplace'), + \ 'ambiguousIsNarrow': &ambiwidth ==# 'single' ? v:true : v:false, + \ 'textprop': has('textprop') ? v:true : v:false, + \ 'virtualText': has('nvim-0.5.0') || has('patch-9.0.0067') ? v:true : v:false, + \ 'dialog': 1, + \ 'semanticHighlights': coc#util#semantic_hlgroups() + \} +endfunction + +function! coc#util#all_state() + return { + \ 'bufnr': bufnr('%'), + \ 'winid': win_getid(), + \ 'bufnrs': map(getbufinfo({'bufloaded': 1}),'v:val["bufnr"]'), + \ 'winids': map(getwininfo(),'v:val["winid"]'), + \ } +endfunction + +function! coc#util#install() abort + let yarncmd = get(g:, 'coc_install_yarn_cmd', executable('yarnpkg') ? 'yarnpkg' : 'yarn') + call coc#ui#open_terminal({ + \ 'cwd': s:root, + \ 'cmd': yarncmd.' install --frozen-lockfile --ignore-engines', + \ 'autoclose': 0, + \ }) +endfunction + +function! coc#util#extension_root() abort + return coc#util#get_data_home().'/extensions' +endfunction + +function! coc#util#update_extensions(...) abort + let async = get(a:, 1, 0) + if async + call coc#rpc#notify('updateExtensions', []) + else + call coc#rpc#request('updateExtensions', [v:true]) + endif +endfunction + +function! coc#util#install_extension(args) abort + let names = filter(copy(a:args), 'v:val !~# "^-"') + let isRequest = index(a:args, '-sync') != -1 + if isRequest + call coc#rpc#request('installExtensions', names) + else + call coc#rpc#notify('installExtensions', names) + endif +endfunction + +function! coc#util#do_autocmd(name) abort + if exists('#User#'.a:name) + exe 'doautocmd User '.a:name + endif +endfunction + +function! coc#util#unmap(bufnr, keys) abort + if bufnr('%') == a:bufnr + for key in a:keys + exe 'silent! nunmap '.key + endfor + endif +endfunction + +function! coc#util#refactor_foldlevel(lnum) abort + if a:lnum <= 2 | return 0 | endif + let line = getline(a:lnum) + if line =~# '^\%u3000\s*$' | return 0 | endif + return 1 +endfunction + +function! coc#util#refactor_fold_text(lnum) abort + let range = '' + let info = get(b:line_infos, a:lnum, []) + if !empty(info) + let range = info[0].':'.info[1] + endif + return trim(getline(a:lnum)[3:]).' '.range +endfunction + +" get tabsize & expandtab option +function! coc#util#get_format_opts(bufnr) abort + let bufnr = a:bufnr && bufloaded(a:bufnr) ? a:bufnr : bufnr('%') + let tabsize = getbufvar(bufnr, '&shiftwidth') + if tabsize == 0 + let tabsize = getbufvar(bufnr, '&tabstop') + endif + return { + \ 'tabsize': tabsize, + \ 'expandtab': getbufvar(bufnr, '&expandtab'), + \ 'insertFinalNewline': getbufvar(bufnr, '&eol'), + \ 'trimTrailingWhitespace': getbufvar(bufnr, 'coc_trim_trailing_whitespace', 0), + \ 'trimFinalNewlines': getbufvar(bufnr, 'coc_trim_final_newlines', 0) + \ } +endfunction + +function! coc#util#get_editoroption(winid) abort + let info = get(getwininfo(a:winid), 0, v:null) + if empty(info) || coc#window#is_float(a:winid) + return v:null + endif + let bufnr = info['bufnr'] + let buftype = getbufvar(bufnr, '&buftype') + " avoid window for other purpose. + if buftype !=# '' && buftype !=# 'acwrite' + return v:null + endif + let tabSize = getbufvar(bufnr, '&shiftwidth') + if tabSize == 0 + let tabSize = getbufvar(bufnr, '&tabstop') + endif + return { + \ 'bufnr': bufnr, + \ 'winid': a:winid, + \ 'tabpageid': coc#util#tabnr_id(info['tabnr']), + \ 'winnr': winnr(), + \ 'visibleRanges': s:visible_ranges(a:winid), + \ 'tabSize': tabSize, + \ 'insertSpaces': getbufvar(bufnr, '&expandtab') ? v:true : v:false + \ } +endfunction + +function! coc#util#tabnr_id(tabnr) abort + return s:is_vim ? coc#api#get_tabid(a:tabnr) : nvim_list_tabpages()[a:tabnr - 1] +endfunction + +function! coc#util#get_loaded_bufs() abort + return map(getbufinfo({'bufloaded': 1}),'v:val["bufnr"]') +endfunction + +function! coc#util#editor_infos() abort + let result = [] + for info in getwininfo() + if !coc#window#is_float(info['winid']) + let bufnr = info['bufnr'] + let buftype = getbufvar(bufnr, '&buftype') + if buftype !=# '' && buftype !=# 'acwrite' + continue + endif + let bufname = bufname(bufnr) + call add(result, { + \ 'winid': info['winid'], + \ 'bufnr': bufnr, + \ 'tabid': coc#util#tabnr_id(info['tabnr']), + \ 'fullpath': empty(bufname) ? '' : fnamemodify(bufname, ':p'), + \ }) + endif + endfor + return result +endfunction + +function! coc#util#tabpages() abort + if s:is_vim + return coc#api#exec('list_tabpages', []) + endif + return nvim_list_tabpages() +endfunction + +function! coc#util#getpid() + if !has('win32unix') + return getpid() + endif + let cmd = 'cat /proc/' . getpid() . '/winpid' + return substitute(system(cmd), '\v\n', '', 'gi') +endfunction + +" Get indentkeys for indent on TextChangedP, consider = for word indent only. +function! coc#util#get_indentkeys() abort + if empty(&indentexpr) + return '' + endif + if &indentkeys !~# '=' + return '' + endif + return &indentkeys +endfunction + +function! coc#util#get_bufoptions(bufnr, max) abort + if !bufloaded(a:bufnr) | return v:null | endif + let bufname = bufname(a:bufnr) + let buftype = getbufvar(a:bufnr, '&buftype') + let size = coc#util#bufsize(a:bufnr) + let lines = v:null + if getbufvar(a:bufnr, 'coc_enabled', 1) + \ && (buftype == '' || buftype == 'acwrite' || getbufvar(a:bufnr, 'coc_force_attach', 0)) + \ && size != -2 + \ && size < a:max + let lines = getbufline(a:bufnr, 1, '$') + endif + return { + \ 'bufnr': a:bufnr, + \ 'size': size, + \ 'lines': lines, + \ 'winid': bufwinid(a:bufnr), + \ 'bufname': bufname, + \ 'buftype': buftype, + \ 'previewwindow': v:false, + \ 'eol': getbufvar(a:bufnr, '&eol'), + \ 'variables': coc#util#variables(a:bufnr), + \ 'filetype': getbufvar(a:bufnr, '&filetype'), + \ 'lisp': getbufvar(a:bufnr, '&lisp'), + \ 'iskeyword': getbufvar(a:bufnr, '&iskeyword'), + \ 'changedtick': getbufvar(a:bufnr, 'changedtick'), + \ 'fullpath': empty(bufname) ? '' : fnamemodify(bufname, ':p'), + \} +endfunction + +function! coc#util#bufsize(bufnr) abort + if bufnr('%') == a:bufnr + return line2byte(line("$") + 1) + endif + let bufname = bufname(a:bufnr) + if !getbufvar(a:bufnr, '&modified') && filereadable(bufname) + return getfsize(bufname) + endif + return strlen(join(getbufline(a:bufnr, 1, '$'), '\n')) +endfunction + +function! coc#util#get_config_home() + if !empty(get(g:, 'coc_config_home', '')) + return resolve(expand(g:coc_config_home)) + endif + if exists('$VIMCONFIG') + return resolve($VIMCONFIG) + endif + if has('nvim') + if exists('$XDG_CONFIG_HOME') + return resolve($XDG_CONFIG_HOME."/nvim") + endif + if s:is_win + return resolve($HOME.'/AppData/Local/nvim') + endif + return resolve($HOME.'/.config/nvim') + else + if s:is_win + return resolve($HOME."/vimfiles") + endif + return resolve($HOME.'/.vim') + endif +endfunction + +function! coc#util#get_data_home() + if get(g:, 'coc_node_env', '') ==# 'test' + return $COC_DATA_HOME + endif + if !empty(get(g:, 'coc_data_home', '')) + let dir = resolve(expand(g:coc_data_home)) + else + if exists('$XDG_CONFIG_HOME') + let dir = resolve($XDG_CONFIG_HOME."/coc") + else + if s:is_win + let dir = resolve(expand('~/AppData/Local/coc')) + else + let dir = resolve(expand('~/.config/coc')) + endif + endif + endif + if !isdirectory(dir) + call coc#notify#create(['creating coc.nvim data directory: '.dir], { + \ 'borderhighlight': 'CocInfoSign', + \ 'timeout': 5000, + \ 'kind': 'info', + \ }) + call mkdir(dir, "p", 0755) + endif + return dir +endfunction + +function! coc#util#get_complete_option() + let pos = getcurpos() + let line = getline(pos[1]) + let input = matchstr(strpart(line, 0, pos[2] - 1), '\k*$') + let col = pos[2] - strlen(input) + let position = { + \ 'line': line('.')-1, + \ 'character': coc#string#character_length(strpart(getline('.'), 0, col('.') - 1)) + \ } + let word = matchstr(strpart(line, col - 1), '^\k\+') + let followWord = len(word) > 0 ? strcharpart(word, strchars(input)) : '' + return { + \ 'word': word, + \ 'followWord': followWord, + \ 'position': position, + \ 'input': empty(input) ? '' : input, + \ 'line': line, + \ 'filetype': &filetype, + \ 'filepath': expand('%:p'), + \ 'bufnr': bufnr('%'), + \ 'linenr': pos[1], + \ 'colnr' : pos[2], + \ 'col': col - 1, + \ 'changedtick': b:changedtick, + \} +endfunction + +" used by vim +function! coc#util#get_buf_lines(bufnr, changedtick) + if !bufloaded(a:bufnr) + return v:null + endif + let changedtick = getbufvar(a:bufnr, 'changedtick') + if changedtick == a:changedtick + return v:null + endif + return { + \ 'lines': getbufline(a:bufnr, 1, '$'), + \ 'changedtick': getbufvar(a:bufnr, 'changedtick') + \ } +endfunction + +" used for TextChangedI with InsertCharPre +function! coc#util#get_changeinfo(bufnr) + if bufnr('%') == a:bufnr + return { + \ 'lnum': line('.'), + \ 'line': getline('.'), + \ 'changedtick': b:changedtick, + \} + endif + let winid = bufwinid(a:bufnr) + if winid != -1 + let ref = {} + call win_execute(winid, 'let ref = {"lnum": line("."), "line": getline("."), "changedtick": b:changedtick}') + return ref + endif + return v:null +endfunction + +" Get the valid position from line, character of current buffer +function! coc#util#valid_position(line, character) abort + let total = line('$') - 1 + if a:line > total + return [total, 0] + endif + let max = max([0, coc#string#character_length(getline(a:line + 1)) - (mode() ==# 'n' ? 1 : 0)]) + return a:character > max ? [a:line, max] : [a:line, a:character] +endfunction + +function! s:visible_ranges(winid) abort + let info = getwininfo(a:winid)[0] + let res = [] + if !has_key(info, 'topline') || !has_key(info, 'botline') + return res + endif + let begin = 0 + let curr = info['topline'] + let max = info['botline'] + if win_getid() != a:winid + return [[curr, max]] + endif + while curr <= max + let closedend = foldclosedend(curr) + if closedend == -1 + let begin = begin == 0 ? curr : begin + if curr == max + call add(res, [begin, curr]) + endif + let curr = curr + 1 + else + if begin != 0 + call add(res, [begin, curr - 1]) + let begin = closedend + 1 + endif + let curr = closedend + 1 + endif + endwhile + return res +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/vtext.vim b/pack/acp/opt/coc.nvim/autoload/coc/vtext.vim new file mode 100644 index 0000000..e952933 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/vtext.vim @@ -0,0 +1,91 @@ +let s:is_vim = !has('nvim') +let s:virtual_text_support = has('nvim-0.5.0') || has('patch-9.0.0067') +let s:text_options = has('patch-9.0.0121') || has('nvim-0.6.0') +let s:vim_above = has('patch-9.0.0438') + +" This function is called by buffer.setVirtualText +" opts.hl_mode default to 'combine'. +" opts.col vim only, no support on neovim, default to 0. +" opts.virt_text_win_col neovim only. +" opts.text_align could be 'after' 'right' 'below' 'above', converted on neovim. +" opts.text_wrap could be 'wrap' and 'truncate', vim9 only. +" opts.indent add indent when using 'above' and 'below' as text_align +function! coc#vtext#add(bufnr, src_id, line, blocks, opts) abort + if !s:virtual_text_support + return + endif + let align = get(a:opts, 'text_align', 'after') + let indent = '' + if get(a:opts, 'indent', 0) + let indent = matchstr(getline(a:line + 1), '^\s\+') + endif + if s:is_vim + let column = get(a:opts, 'col', 0) + if !has_key(a:opts, 'col') && align ==# 'after' + " add a whitespace, same as neovim. + let indent = ' ' + endif + let blocks = a:blocks + if !empty(a:blocks) && (align ==# 'above' || align ==# 'below') + " only first highlight can be used + let hl = a:blocks[0][1] + let text = join(map(copy(a:blocks), "v:val[0]"), '') + let blocks = [[text, hl]] + let column = 0 + endif + let first = 1 + let base = s:get_option_vim(align, column, get(a:opts, 'text_wrap', 'truncate')) + for [text, hl] in blocks + let type = coc#api#create_type(a:src_id, hl, a:opts) + let opts = extend({ 'text': text, 'type': type }, base) + if first && !empty(indent) + let opts['text'] = indent . text + endif + call prop_add(a:line + 1, column, opts) + let first = 0 + endfor + else + let opts = { 'hl_mode': get(a:opts, 'hl_mode', 'combine') } + if s:text_options + if align ==# 'above' || align ==# 'below' + let blocks = empty(indent) ? a:blocks : [[indent, 'Normal']] + a:blocks + let opts['virt_lines'] = [blocks] + if align ==# 'above' + let opts['virt_lines_above'] = v:true + endif + else + let opts['virt_text'] = a:blocks + if align ==# 'right' + let opts['virt_text_pos'] = 'right_align' + else + if type(get(a:opts, 'virt_text_win_col', v:null)) == 0 + let opts['virt_text_win_col'] = a:opts['virt_text_win_col'] + let opts['virt_text_pos'] = 'overlay' + else + " default to 'after' + let opts['virt_text_pos'] = 'eol' + endif + endif + endif + else + if has('nvim-0.5.1') && type(get(a:opts, 'virt_text_win_col', v:null)) == 0 + let opts['virt_text_win_col'] = a:opts['virt_text_win_col'] + let opts['virt_text_pos'] = 'overlay' + endif + endif + call nvim_buf_set_extmark(a:bufnr, a:src_id, a:line, 0, opts) + endif +endfunction + +function! s:get_option_vim(align, column, wrap) abort + let opts = {} + if s:text_options && a:column == 0 + if a:align ==# 'top' && !s:vim_above + let opts['text_align'] = 'right' + else + let opts['text_align'] = a:align + endif + let opts['text_wrap'] = a:wrap + endif + return opts +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/coc/window.vim b/pack/acp/opt/coc.nvim/autoload/coc/window.vim new file mode 100644 index 0000000..ae44ddb --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/coc/window.vim @@ -0,0 +1,210 @@ +let g:coc_max_treeview_width = get(g:, 'coc_max_treeview_width', 40) +let s:is_vim = !has('nvim') + +" Get tabpagenr of winid, return -1 if window doesn't exist +function! coc#window#tabnr(winid) abort + " getwininfo not work with popup on vim + if exists('*win_execute') + let ref = {} + call win_execute(a:winid, 'let ref["out"] = tabpagenr()') + return get(ref, 'out', -1) + endif + let info = getwininfo(a:winid) + return empty(info) ? -1 : info[0]['tabnr'] +endfunction + +" (1, 0) based line, column +function! coc#window#get_cursor(winid) abort + if exists('*nvim_win_get_cursor') + return nvim_win_get_cursor(a:winid) + endif + if has('patch-8.2.1727') + let pos = getcurpos(a:winid) + return [pos[1], pos[2] - 1] + endif + return coc#api#exec('win_get_cursor', [a:winid]) +endfunction + +" Check if winid visible on current tabpage +function! coc#window#visible(winid) abort + if s:is_vim + if coc#window#tabnr(a:winid) != tabpagenr() + return 0 + endif + " Check possible hidden popup + try + return get(popup_getpos(a:winid), 'visible', 0) == 1 + catch /^Vim\%((\a\+)\)\=:E993/ + return 1 + endtry + endif + if !nvim_win_is_valid(a:winid) + return 0 + endif + return coc#window#tabnr(a:winid) == tabpagenr() +endfunction + +" winid is popup and shown +function! s:visible_popup(winid) abort + let popups = popup_list() + if index(popups, a:winid) != -1 + return get(popup_getpos(a:winid), 'visible', 0) == 1 + endif + return 0 +endfunction + +" Return v:null when name or window doesn't exist, +" 'getwinvar' only works on window of current tab +function! coc#window#get_var(winid, name, ...) abort + if !s:is_vim + try + if a:name =~# '^&' + return nvim_win_get_option(a:winid, a:name[1:]) + else + return nvim_win_get_var(a:winid, a:name) + endif + catch /E5555/ + return get(a:, 1, v:null) + endtry + else + try + return coc#api#exec('win_get_var', [a:winid, a:name, get(a:, 1, v:null)]) + catch /Invalid window id/ + return get(a:, 1, v:null) + endtry + endif +endfunction + +" Not throw like setwinvar +function! coc#window#set_var(winid, name, value) abort + try + if !s:is_vim + if a:name =~# '^&' + call nvim_win_set_option(a:winid, a:name[1:], a:value) + else + call nvim_win_set_var(a:winid, a:name, a:value) + endif + else + call coc#api#exec('win_set_var', [a:winid, a:name, a:value]) + endif + catch /Invalid window id/ + " ignore + endtry +endfunction + +function! coc#window#is_float(winid) abort + if s:is_vim + try + return !empty(popup_getpos(a:winid)) + catch /^Vim\%((\a\+)\)\=:E993/ + return 0 + endtry + else + let config = nvim_win_get_config(a:winid) + return !empty(config) && !empty(get(config, 'relative', '')) + endif +endfunction + +" Reset current lnum & topline of window +function! coc#window#restview(winid, lnum, topline) abort + if empty(getwininfo(a:winid)) + return + endif + if s:is_vim && s:visible_popup(a:winid) + call popup_setoptions(a:winid, {'firstline': a:topline}) + return + endif + call coc#compat#execute(a:winid, ['noa call winrestview({"lnum":'.a:lnum.',"topline":'.a:topline.'})']) +endfunction + +function! coc#window#set_height(winid, height) abort + if empty(getwininfo(a:winid)) + return + endif + if exists('*nvim_win_set_height') + call nvim_win_set_height(a:winid, a:height) + else + call coc#compat#execute(a:winid, 'noa resize '.a:height, 'silent') + endif +endfunction + +function! coc#window#adjust_width(winid) abort + let bufnr = winbufnr(a:winid) + if bufloaded(bufnr) + let maxwidth = 0 + let lines = getbufline(bufnr, 1, '$') + if len(lines) > 2 + call coc#compat#execute(a:winid, 'setl nowrap') + for line in lines + let w = strwidth(line) + if w > maxwidth + let maxwidth = w + endif + endfor + endif + if maxwidth > winwidth(a:winid) + call coc#compat#execute(a:winid, 'vertical resize '.min([maxwidth, g:coc_max_treeview_width])) + endif + endif +endfunction + +" Get single window by window variable, current tab only +function! coc#window#find(key, val) abort + for i in range(1, winnr('$')) + let res = getwinvar(i, a:key) + if res == a:val + return win_getid(i) + endif + endfor + return -1 +endfunction + +" Visible buffer numbers +function! coc#window#bufnrs() abort + let winids = [] + if exists('*nvim_list_wins') + let winids = nvim_list_wins() + else + let winids = map(getwininfo(), 'v:val["winid"]') + endif + return uniq(map(winids, 'winbufnr(v:val)')) +endfunction + +" Avoid errors +function! coc#window#close(winid) abort + if empty(a:winid) || a:winid == -1 + return + endif + if coc#float#valid(a:winid) + call coc#float#close(a:winid) + return + endif + if exists('*nvim_win_is_valid') && exists('*nvim_win_close') + if nvim_win_is_valid(a:winid) + call nvim_win_close(a:winid, 1) + endif + else + call coc#compat#execute(a:winid, 'noa close!', 'silent!') + endif +endfunction + +function! coc#window#visible_range(bufnr) abort + let winid = bufwinid(a:bufnr) + if winid == -1 + return v:null + endif + let info = getwininfo(winid)[0] + return [info['topline'], info['botline']] +endfunction + +function! coc#window#visible_ranges(bufnr) abort + let wins = gettabinfo(tabpagenr())[0]['windows'] + let res = [] + for id in wins + let info = getwininfo(id)[0] + if info['bufnr'] == a:bufnr + call add(res, [info['topline'], info['botline']]) + endif + endfor + return res +endfunction diff --git a/pack/acp/opt/coc.nvim/autoload/health/coc.vim b/pack/acp/opt/coc.nvim/autoload/health/coc.vim new file mode 100644 index 0000000..24fbab4 --- /dev/null +++ b/pack/acp/opt/coc.nvim/autoload/health/coc.vim @@ -0,0 +1,100 @@ +scriptencoding utf-8 +let s:root = expand(':h:h:h') + +function! s:checkVim(test, name, patchlevel) abort + if a:test + if !has(a:patchlevel) + call health#report_error(a:name . ' version not satisfied, ' . a:patchlevel . ' and above required') + return 0 + else + call health#report_ok(a:name . ' version satisfied') + return 1 + endif + endif + return 0 +endfunction + +function! s:checkEnvironment() abort + let valid + \ = s:checkVim(has('nvim'), 'nvim', 'nvim-0.4.0') + \ + s:checkVim(!has('nvim'), 'vim', 'patch-8.1.1719') + let node = get(g:, 'coc_node_path', $COC_NODE_PATH == '' ? 'node' : $COC_NODE_PATH) + if !executable(node) + let valid = 0 + call health#report_error('Executable node.js not found, install node.js from http://nodejs.org/') + endif + let output = system(node . ' --version') + if v:shell_error && output !=# "" + let valid = 0 + call health#report_error(output) + endif + let ms = matchlist(output, 'v\(\d\+\).\(\d\+\).\(\d\+\)') + if empty(ms) + let valid = 0 + call health#report_error('Unable to detect version of node, make sure your node executable is http://nodejs.org/') + elseif str2nr(ms[1]) < 14 || (str2nr(ms[1]) == 14 && str2nr(ms[2]) < 14) + let valid = 0 + call health#report_warn('Node.js version '.trim(output).' < 14.14.0, please upgrade node.js') + endif + if valid + call health#report_ok('Environment check passed') + endif + if has('pythonx') + try + silent pyx print("") + catch /.*/ + call health#report_warn('pyx command not work, some extensions may fail to work, checkout ":h pythonx"') + if has('nvim') + call health#report_warn('Install pynvim by command: pip install pynvim --upgrade') + endif + endtry + endif + return valid +endfunction + +function! s:checkCommand() + let file = s:root.'/build/index.js' + if filereadable(file) + call health#report_ok('Javascript bundle build/index.js found') + else + call health#report_error('Javascript entry not found, please compile coc.nvim by esbuild.') + endif +endfunction + +function! s:checkAutocmd() + let cmds = ['CursorHold', 'CursorHoldI', 'CursorMovedI', 'InsertCharPre', 'TextChangedI'] + for cmd in cmds + let lines = split(execute('verbose autocmd '.cmd), '\n') + let n = 0 + for line in lines + if line =~# 'CocAction(' && n < len(lines) - 1 + let next = lines[n + 1] + let ms = matchlist(next, 'Last set from \(.*\)') + if !empty(ms) + call health#report_warn('Use CocActionAsync to replace CocAction for better performance on '.cmd) + call health#report_warn('Checkout the file '.ms[1]) + endif + endif + let n = n + 1 + endfor + endfor +endfunction + +function! s:checkInitialize() abort + if coc#client#is_running('coc') + call health#report_ok('Service started') + return 1 + endif + call health#report_error('service could not be initialized', [ + \ 'Use command ":messages" to get error messages.', + \ 'Open a issue at https://github.com/neoclide/coc.nvim/issues for feedback.' + \]) + return 0 +endfunction + +function! health#coc#check() abort + call s:checkEnvironment() + call s:checkCommand() + call s:checkInitialize() + call s:checkAutocmd() +endfunction diff --git a/pack/acp/opt/coc.nvim/bin/fuzzy.wasm b/pack/acp/opt/coc.nvim/bin/fuzzy.wasm new file mode 100755 index 0000000000000000000000000000000000000000..d59592e5c4384dd13dc2e5d693ec3896532d0898 GIT binary patch literal 18363 zcmdUWdz58WdFOBMea@*ZE~b6FpCerLbG{q66yPveXW&s6}_OS7$NSuJl>%h(ERHOtFH#q#*4mbWHE zYS|ok0HBnHfz|+Ek`yXUQgwk+Dm4l^%hj@SJ8w^liNliY+%wNTfAJEH?A$ZXIp_S> zV!!09#WT;u3#QJx=+a9sIrWUC*Pf02r=I+S1EyfnxneLFptyRSDwba~;Ir#2RO(Q9 z)axB)^(X#jFhCm)oi|AN&fBjVV4>3P8#tM-OB3on@u|T8Rl-*%F0a#9-OkQ%;$U#q zU@+K?b^0k*aInhdJ$FIhJ@Eef-k)ArCG(-FgTuVOAvELTw^+Y$uzFrU9NLD#=k=bI z@K#RI!6x(i^Wo7g&+FZMH0!N#-{Mox8h5Wea7ft18h1~?DY0>157i=ixNh`7qf*K- zSog8IbWbRaUBE+q-V7|saK`e zEL6s+#d$6Knbp^lKlA$29KgYvdHsR-n9PT*3SHZ@=Z>4#Nuk&8`#%f!nA+Tqo4k{q zRGI5oxc#|17OpsXO{JaLRwdgi<4k`;n+sQcn=CqYVU;?wR3Wl-R-;N>-lH(+^){K+ zd8I9C24fS&!e(xVO)u`xhv8bPu(G+i)fV%*RoKKzuc#f%_gGQl0nomq;!E`>iIC4b69xRN<#^Q9{9hdr?QVw{N8WzJ2|vpO&H z!se8rmeu@|b2y^J=JPt|F~of6)`4O!JJ4zs+>Q6jZcJ`yD?906C;zYT+vz2D?0y zPOnT0v)-m--YoG%xxt>UyrIA^RjEzgU@$FjbiYcM-1Ih{ zf<>DyiUL})+8TFYZ<|y7MK{wc3sKAqLBvGNij^Cb%G`{D$QaE8Pp*5REu7l6U<=pX zxMr#3{PTL};)Yh4O-^saW@Td2GPjxZ6rR)4v`k^mXn!-C+0?=v%(L5b9oh7B;~Hyh zwx%Ta)lvzYwjrBjY`!Sn}dt7Po7UUJUA z-d}1p{H1@B(Lz=9tK90%T$nq0Uf;wyj28X?ohlxK z=o8#4II%hXkmOV4|Su-5)&1-HDho!Y$2LZ9MBR)!Wmu@J8$w^-om=!MhUD>EJ!eQG#J9tAsO77W!2Zrb#B760Hd~Pol#uog_Bv@yJObU8#jodQdAV z_?ClhYNsv3-N{=M{DW3nSn$0rDDktwrFO|;?OfZuW{)EWM-s;)oczRXw@DnB`cgubv{%XAiwfl4 z7d9PfN19rj_2!>rCh0hEK@41MVv9HvMfsP$!w%=CQ)RKHU<}eNJS8)%Z=btDX4G~db=z$knU_Z9^{UJk zv?+Rl&MVJ%h>>(1#x+=*%CQP;rXR+5FlkZ8@C1oPYcwBOxELnI=3?!}&H2>hk>r8W z>utu9#xT#RP2zZL@0Sx~s5Q@R2I4UMMDhVBxTpX3cPS%lRHmhfMZQ!yj~qx))^_UdEE(JuNH0`5DVM^VUtE>6E^LYsm<&}G;`cI zx1-N^Sz88-97#9A#5C?-DzSVcQj{|@+A6v=44sn@C#IHWLN?JF@l!+tmkE6=i3|<@ zFm~rA#;B3@r^}8xYK%hC=NpAkr!}GwjH3|LQAoNn3Nb|(e#Yt(v5p)ZZy7@qE-u7M zaLSqx1c&*HK9N{hDuns3wz^&vm&i~fm7s;mfCXzp&|;X8KuPO>N|F=X`_wc%ng?$a zTdbB?%hDfWP*UX*vx=y(=as{ed1NK!=D9RHo#~T$RX$D#(HYHyzLdPlx`vK9Srl~7 zIkw1c;yS&P*HpQC(Q~QeMjolC)iIrYhr{*vX$jY9@RS@L?B_b2JL0@IAByRb?9r1CYup4Gz@1EbmDwDalF)C;8I;t*EE8W~)`UBjjj|qDt&S+p%#zfJkG;g1 zJDx68X%J`Fv?0zZbq>t}11rhtwN~mRa+Eug)Z(0t#5voyI7#oSm-DFwwr;oymjStn-1nEzlFk)CTRW;>M10x8I=d!nkt z{%`h|7gt0a(!?JlzS3Ze{F8SB9AZhQ(@ywmX0-_Kvoj^qJVj{+r8!gF-E!Q<}wckEI#=l4ekv(~&eY`VO+6Hl+F2CeDK? z32Aei1q+hfY-B;6l{k+sP)zDa_oz;sr{lzV5)`R7R=i{BF}cXs zA!JY+B_*Nb*;c{7mn)x!U9B?l?-kv0y$}DsaiJsbShn$?l~)LKYZU$a5Kc%(nG9}| zFsR;q5c4&`o6N%L(d(_Ef3LY5`uAki2sxBl@b7h*+N6?DU{sZ%K&j~&cY=SPiqR;z z@k%60?d{*Qt(C|}a|W>4zu@1S!cK_DPf+9)MLx8V%ZAKO1d&%9UvvLtah=fhYT?EK zEKm}{aN%?avw6Kb`Xvc3-uli2TcU$|9|GVI#wm*!Q&1`-9-L-yr6hyIP>ym@pKR@@ zyu#K?zQwX@$TahLan@w%nL_|Rjk5VwbA|4%&@T_<=j4)bAnErT4 z(~O+A_oKMVpG=C0*bZX5O`r)D)~F-md2m5_&$hkcenT zDc)DZknIVZ40;&4;noWysIfuOOJa?gI~6k=qEwWcJIOn`QZ`xzlc%UxRIrLl zw9GUe3@s_9I!FZ_3~?UDS7mx%S7n*anhr)L4uZpBGi%?orZ%!^%pz~MXx@b z_Oa6#uF$x^;MeoIRxeeCT0P<9xz5beiiJp3(aRQpTh(jhN@eZhacBuvbqH2<2v#%k zII>Z=3VIxx9tShIYKir1R(l+hDaq(@7@5J|W47YZ98)}dQ6+T81G7hNy5dAxn=VRB zLd$mG9pVFujtZ;8Qz>ug&u7Xu;LRNrK{ zoY*!}6n;x{9u=90j}_y!n)^NcktF^`Plf942nA*rp%`!XJBb$ZZn`vXzfy;w(zs5&rZ{DG2sIDs<8Y+wAYU#Vh4#zQX6af?ACGCt z?Tj|F;GJW?ttH|X4pt`2$+*roiX?-dd>h4>^E6?eOjV_BBFuBbP0Ku|<2>7?ar;w= zC00d0he0*RLmD(JAEtvBYW4Tah6syp=mWnC-zc^Nuox2k!MZGpqy#Ge$ zdRC$`vv9U&;l7E@Yf4%8{*ooVj-P++Ik0o1#0qCBBcZ}tpi*?~raAAywftCS4xm-y zp*Up?bzI;K6FqdX89GSqP_h>MP=lHZ?uxE8uf_NxE5>bpI$KC5=w zrnTe-drW`PChml~sj1Svnm(cW?(x`ET1>O;3zpnq@HnJ#=y1`d<8By1gvHh~eoFP- z6S14nc!K?`WzYN@f3r5^9Aa8i}6DdlpY7r&6< ztriceO-|!J^29F1I4iZ_-s;d&@=)o*s0uye^LbM=%fv!2Nas&8HBo;^dQ)eiDq?6m z#q0p8mQy`(Xv(%;Z(A;B|KY#}OUy3?RN1nVW!s@#y{iIv*0tIGYD&{E}oO!u|Q zmR&_f)Uwm3&i^8Ajb6*Zvn zP|KBNo4YnKtKnXEPNf`Wu7Ap!o_iR*a?+ukvTX;_DQn8ip=^n(I90;7m;hFG!nT}_ zLP3RVTim8uaattVVATTsUQsf=jce>=ujFS$)GuVIga}q`UQ1ADvCx$=_-lHd__Gu4z+5DNYoMd@PLC z*y(wWTezD>S)+DwqfvQ%=sF8k63(2HuOegqsLafIn?)l?|3t13vzpIY&;s1B&NUQV zigwnKufXfi40AhSmCb^1R+D9BCrd@~p}083?2hG^kBVdQNQpIalRS8ee3D&GSkq<{ zBg53HSN*Dx%@49rO|XTs6M?g1xfWwuP6+dq6HlwyP)?9*8P_9A;5TrLH{?&wNiYE_ z?j^Id{FdBKQI>g1rxv8B)eC2}Drh;&DfUSBzf`ucQ@wJES@c<*_s9X7`NB?it|XJ} zRM@VZXoO0ug@^z)dO;@s|Mni3(J=e~W?;G5de33Pk)>0Dq#W0yh{Zl=05FIzMrgzECYRuHPoKcpa3m*1v<4@Z7}1HeZV@Uh1Df1@D8`VRv5gaSUT0OlAt z{^wO7mQ#klpaRwX->o22m*1lxRF{8IL8vbOk^&xVjQ?!~{IG$4tRPg^|A_*A)+qml zf)LB!<-Px<0!YO7c<-N3z#)1p?^ZKq5z2RX?<)-)(4{+|s%s>`3|a~zNRL&2L)!u($a zppyVcMa=naO@Ki%=FfEr@Yx35oj{2FPXo9!0lwTQzc&GnOvmkCmIAL%!+1yYe0G2@ zbOPQw1KiyKzT5#ajy(hH+#mSS{-ONdw*imu5Bxl0^5>=*;8Qc9eErY7|I7?ga$sT3!K`( zzuyI3(+%UZzq7l*`Hk{xyTF?o_|Ln*yBhd?UEo6v{E05`$p-#Z7q~s*k9+Sw-33To z-!FMayTF%X`TM>1f8Pa2b@>Bb;2VwpzS#vHjQH)|`|o#wM;qn;s|)-f;+wqpk97eO z`=h))(FJ}L%LkOdF7RZ;S9H?&C{FjsfiTFL=_5O$wAQ8KVynks4kcdC^koU)w z0Eu{pGExHPmtns;0A61PVmZ&l#}5U*dT1y=i2q7)4mffyV9MXtxj=RO|1t+5;>r8H zf9)JVB0lKH-v8koKq7wO{oeo49I!AqmalW?AjI;A@ALk=IeD`7w3SB<^U7z!Hzj#InMXa`@A2_0pD$m_k%g$e>dKiuN|Z9{-WeE$~jKRg6T#6Q^L{YQoXiFl_0J~{+G+nC>7LkO{) z>-+pL5b?d<`!5Uu67grYc>lLUfJA)HMc&^%1pcnk-_M5-s{1QFaJ&zDNBxUL;jl!B zZ!ins)1&-mQRLjq%>6fDbAljXb$k0UvFQ|8WI;Qib!)K0c!WQa#=s z3Lp_5x0nCN-`^^L#Ap5klBWO1-`^>KRF~8LBS|6kzXC{g`BxP1t;YQShXP0}zs-C9 zkOF?xD5rl&s{8w?0!Vd#KUcu78tZ*h0o~|tvCfM$aBKtrI}MQP{!Y-qdL88dgd>0x zHLyvK`FXMiPH(h-l?F&`-#r5OZ5@bs<_O?F=s?7W90B}}4n%yU_x^V^Kq5ZId;e+; z{9YXYSnvJsYkOjP7e})D~#G7{kuhoHwU*^3( zQv)R8**MC^6}=j%Xq z`@RN9#7`d%Eb2hSFZJGEqyZA~5#IaDH9#VMxc;#ckhUatey<=1F{ zM0~_9;94E1E`Os2NW`~$@2}Iq^>IHA^WNW}0TRnU$@8oM67h?@_wUdEiTJ=>z&mvy z;uq`!Hkd%fzYCymfD5C4&36|YfW&A1UT1*Iqrc4a{s9w+W#9DPf6xFQiscXT%oyO# zh^bHSG60G7ze62mfG;)5|K0#3mhWbaY=E!C@;hl$3_xP}U5tqhKq9`IF|Pqg#9yOL zGXRPBi{ATxGysX1{^vIg@T10hA2$Gr<@67KYycARt={{e7=T1P0pO=55b+J(`=1+t zM7)z@7~n}W)^A5A!09obAU|G}0I!Ld{hyHlSHyUMeO#XacQo)_3GkH${%Qh{Sog#IhfryX04p4^xe;VT#zWd8V01}_S;Jtr0pBv@q z0u#|6XZ+OZ0tYs*?E;52@X=jhT?4Q00vj6mx4Xda#rTH(ZS4Yo)F{883-lvC1;An# zxG3UR1K8FDE{^yQ0c`IAmqa|EZ_))`7x4uEF6#o9N4x{TpbK0RvBZO2;B5`OvkMFx z_|`6PTLXWj3nB7r62ND>fruacp7)>Y0;Ib9-Y)R9M*BTo;5!ZcKf4fOeK{{(fK<0X zt%MNq!`}M~N?@`8v=JU@aKlWJ&pdpI0Sw%l(13y z_?=q-68qcwl=m0h0^D&+SpU&yd+$83CHn8wce9DY>Cs<*fP0WAJlVjzTM9pk{yX*m f?$rtpMgN`cx1Oi49Q}9V>QRMPM*scW-uwRpgJJ=t literal 0 HcmV?d00001 diff --git a/pack/acp/opt/coc.nvim/bin/prompt.js b/pack/acp/opt/coc.nvim/bin/prompt.js new file mode 100644 index 0000000..c454997 --- /dev/null +++ b/pack/acp/opt/coc.nvim/bin/prompt.js @@ -0,0 +1,108 @@ +/* + * Used for prompt popup on vim + */ +const readline = require("readline") +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, + terminal: true, + escapeCodeTimeout: 0, + prompt: '' +}) + +let value = process.argv[2] +let placeholder = process.argv[3] +let clear = false +if (value) { + rl.write(value) +} else if (placeholder) { + clear = true + rl.write('\x1B[90m' + placeholder + '\x1B[39m') + rl.write('', {ctrl: true, name: 'a'}) +} +rl.on('line', input => { + send(['confirm', clear ? '' : input]) + process.exit() +}) + +let original_ttyWrite = rl._ttyWrite +rl._ttyWrite = function (code, key) { + if (key.name === 'enter') { + send(['send', '']) + return '' + } + original_ttyWrite.apply(rl, arguments) + if (clear && rl.line.includes('\x1B')) { + clear = false + rl.write('', {ctrl: true, name: 'k'}) + return + } + send(['change', rl.line]) +} + +function createSequences(str) { + return '\033]51;' + str + '\x07' +} + +function send(args) { + process.stdout.write(createSequences(JSON.stringify(['call', 'CocPopupCallback', args]))) +} + +process.stdin.on('keypress', (e, key) => { + if (key) { + let k = getKey(key) + if (k == '') { + return + } + if (k == '') { + send(['exit', '']) + process.exit() + } + if (k) { + send(['send', k]) + return + } + } +}) + +function getKey(key) { + if (key.ctrl === true) { + if (key.name == 'n') { + return '' + } + if (key.name == 'p') { + return '' + } + if (key.name == 'j') { + return '' + } + if (key.name == 'k') { + return '' + } + if (key.name == 'f') { + return '' + } + if (key.name == 'b') { + return '' + } + if (key.sequence == '\x00') { + return '' + } + } + if (key.sequence == '\u001b') { + return '' + } + if (key.sequence == '\r') { + return '' + } + if (key.sequence == '\t') { + return key.shift ? '' : '' + } + if (key.name == 'up') { + return '' + } + if (key.name == 'down') { + return '' + } + return '' +} diff --git a/pack/acp/opt/coc.nvim/bin/strwidth.wasm b/pack/acp/opt/coc.nvim/bin/strwidth.wasm new file mode 100755 index 0000000000000000000000000000000000000000..c5eb626440cba791e434c04df633ba028c1b38f8 GIT binary patch literal 15630 zcmdU$dz4*OmF|CYzs|1O=cG(WaEkh#%%ST92|v|ff-9}W!-$xwL6Y(yjoAP|u- z5DB7KHi}3b3PF;}kQ5`gMOo>XIJxAaOEwIAAfR;VMT5m97yJ#C^wPnB^WXdK!M|o! za>={i_r47m(iXjE;G&DDwqAeM>(8smVmAn16;bHPfADuR|EVxH+3r-szzG`@Qcn8aZ z9qx&dB5f2K`-?}mJ+v*pG>>}Srv(MQ!2_<4US6-4S%C?9gDw8CZM-+QapvtFJ3>s< z8+`QJw%KB+H@HeK!xbhhuGg!E35(C$3vCh;nXvezyN~rgEWYfD`MWL6kN$pIp;+6{ zvfG<)Z**^cmHyjX+*@DPH1e<*4pvvl+yIKreinlcH)U=IH7eitLQeJSf6Vd9*1Hi?DxXMF%eZCK@Q@(mXE0!5lxOiv#kgNE=Fq zV1L zrb$dX;5%Z1TB?f>EDq9InweAyTQ-6IlWKE%7n!s-NOc?1>#8kKn%fm9mor_Br|fF9 ztgMJ>DKIVnSLVA228+-Ci*95k8_J2z{U+$EMTS}&tO%6>@#3JGhZUWrxwc%mvJzw_ zoGhKky4of>Bab_4kuHFVJ8PJ*7MIB~!{VU5)~cp;aZt`v!z!J%#m>a&!!!@qc9^ue zeraz|E@#db&u!$f_D$Qzc4TEm=}>Ld;w)TY;#y|HJe^T4wQo)8`<@b zMVhv#++shN$WXw~b8mrN$6o1vbtJwAp|$F^;%O4eZra7cUFyhd+UGy5m&()h(toO!is9j? z7TMjVUf2Z1k7?wkMxLlT>dUkKJT<{u9oVEYoE-SyYmamrcunwmdmoupbx5>Mjj9RP zRkXvpucuc~ummgDim1P0y^b5O6(o72L$;Ew7TUcYs+EjQq&6zH8=#>#x+yFvb+b10 zrb^jWmDr@U#MNnKWFD$Vj|^6oq=r7-9Syg88?{8YOR%mIo1{44tYPfFo*JaCZF7i; zAEMflaBW3DcWPJN`Ra<4OIjg)ChN~9Ym6ofVMpW!vPw;UE!15UYR@r2aSsiXth4&O zWRgB@*)D$`X^*46{ycKs)JYC&luP<~cZoJRE?I=f?KGnunSK@N0 ztCN;X`VZw;HUH4+N{}hz7duH^L<3E6ZPMoSh)G?AYLfkxTF;?X6>$R*H56y-ok4AM zP@LFsY?z!$oyV}(&8i(gi-RvKi|kfXmuc@NHL1Qo7)7)tM-kn
W23G^~m*IEwM zlDpNk!rxNXch2h+``q)?B$MHTN|+|G}R%_i~|v`oQd*QsTNv&XcfB}d1a;>-$7SJC!^^H;$pLj{p7`d@)~(! zGW97zpNd!A-!4W9{A@U0x~YxrwsP01!!#a@%4%bD2U(9c?ej?w=ffobx%GBapX*ga zx1?^UV1-F^r)ij1$Z9J*Huu*`I-w>kCNxmg5@~Mz>x_USXH|#$zMO|9a%qQVNLgHF z(y4$?31(Q;q0-WY7@^8%$+YhFT8nKiabhJ=)0w(PRdLT$DV89Kst;=@BJEyLow~Eu z&&jJ=Y9c38CW~635;~z0sZdF+P{~Y7Gm=ae2VHqIrD*N9c8;42pdxOGtQIdWGm(zd z-sm`6ifS>}v@8y)CRx?lQ0ih())`DoZ_w_htU77DdV{K~y4}vkT>qk&>lSJ9UCG3a zT5J+i@@`HSuDGmUlPxTBI7wMuwsOqp`a#qK_KY|GZ8s)>eHK692hTh}yJiQ3z8}2+b%Yo*9LNnQOkw z1gEh~XK-rCG&Iq{xmbxpOz47O*MDnIY%FXGxc;}BpgAZVqJ|o=4O%oA&}Tvyw1k?G zpr+n|+$JYB_p7DRt=YZF`eGT>QbzTV1|@lFV^&Kwt$Aj1I(a&k%A41+@G7R)H1c#R zA*5n7b@tNcO_oiwF=to<-6#tEA~jJ_ZJg1Wr^SNTGRM>MNLkYytJp6%BDh68;j#eT zB}X{_xhzNvy-ypx?zJkCgSy$KCpBrYu%YtLghfdwKvyzqCU;9IMSyx1fQQ&FPhA+9aJ(U6H6s z=VX%3$-(JtL+GiXIv#v2I>!T3bWUDH=g9FmD!Q8cej1~_hJ7`oU0PB-J|sP2(or zC&S2QKxn1(j6f$)N0~K!gk@`29#1Wh^%B;5dV8-v!jxRrGcQeZ51DljnYxGcRqi2k z?x7iWTWvetJ!o`p^Gq7`zsf^cCmI!P>auMXPZLKjBu-x$66-cdU9{~pta|H9V>B%5 z4OGfUe$z$&bv{HhzRs(q&bgPhMWu^0H(fNj>7qY((*>Feo62Mb-iO2kCTRK)l`zvX zS)qF5us7&3yxNDTG%GpR5ja(>j$9Yj1Ot9O)wU>+tv=PU=*Vm?;x%_!py^5zOzyMD zMOodOYF6H<^N3B*+-Hd{c3=}Ko>$Wv)LFyLT64$PnT_pJ716G5u}-%WQL1{oN zYU^v&JNET-He1g<#byr1W|YnGB%3w*cHEDrvH4FX&Ydf9X>*e}50aW>(u2GzaqcCM zPwIPl)J&YmQ;GA)C(d=)x&)b#qS|oBZ6{JEC z=KdUe*kXc0l$e1%pb;ZREL-|=QKRU>r|67|=ow2xlZ*P;g$%OFrX&Ktx5epud*n0C zujYx>_oA{qIEcQVcA#VBShA{P<`II*8c}`k!UGz)%QA4lXnHR#OeE>7Mm!yp}=HO4Fzg}D&wlt_px;vnJ&CoM#(Gny?$$KAAvckrLZ5mvO%^+zgr@UzH?4VHN<(A&&Ta4CRVB{dd zCXE~)oKID5ESoHCR#(&~;)(1o?F&7To+8&&3$KbtT?>-~aowL9QkzE3oBKUo?cs(C zKy4gv-SiCM=Ls7A83YY9UU)S@ofvEq)K-+3a7MP=w*4AB4QKE){IB7uKhZoWPc1M0 z44wuvcp6UUsm9z*p4!ufgYh(6?0Bld_1qae&8C*?HAte$r%4h^P0!+kedw}1Zjn)i z5loZyb|REl?u=x?vZkQVVn?^^C4&7h0Ul6SXViyrNhu)20F=@V}pM zM`ftMu;O9rs4O_xQCVV==>j9M0wd6)vSdJi6(NJx=}Z$CYW|$E5LNYVw@-;icZ8+` zbh=)TYlFeu{;VU?&g(c6qh8EKs-h~}>TPL`O-E|SZWTvhgVn$VtAPtv6RS9q$#4}_ z9Dynh&E(3UmNQ9Hao9{rqKYH5J$PlCW#6>6X_dV-B`U|=WKYU;(T-|ql_)+5ZGV@c z>3b=LjCA@RYGheJHjC=j>iyjRW>pcLX=<63(yDI#@7CaQkI{-i}6p-F6E4fHs(LJ<_Y5PG+& z({Uw8*K)836h7!4(Tt3wL8|ak4S&9!zUU~ z?Ke^+gT;=v{sH}w(h`C^dPVtN(qD}D@>=wD`b~MT7#<1x2TW9)+Wa)k<5zt8g7g== z{HOMdHvRUH!D4uL7xrUU;ed&!s!>HTv&Szzu4UnXDeIz9yNG>>|+(ptDCV>fGB@ zTMmCze=wnYAyBhY$eEqRP@`r=LqmgoT@96wwzPY*1U;-rxuwTSZW>nUkC!AHkZ{QT zdZ?3;iWC*Z&YOiVEK zHyhqL8#)$1=K?rl0la!g0#ui}lat|Enfw^@!v<_?Pa9$mTJU&;);)XgF z+v;$09ll?OJL+&(9ez}YpL;x5$KnrlEOysntPbNI`|DV|T*o3_ghlHj$QHq3k2fvC z;;cnjoVN(xvIx%i_`)Li(jwUIapxi|I*){|BjFs6w;YMZ@X>JH(eTxyVeDw&7J{{ zad784;4Jv$jd1OaaQBU{ek*)vD{u>Z<5$2wnAi{112F#pEIj~kJ^+7p0N!%|{`vs) z9RQht^%F2M0l(LOHwaH|5O!@4MmGp-6rTTxz(<9LJ}GdGkX|FOT{!$!;hbBAH{U9} z`&QxNTZN6c3NL<3h;}*Lze_AWH7XXL85O=VDzIA!b_>!jJX} zKl6BCukee#!b5w7U+op1*(*G|SJ<;xcxkUN^1SfO^Fn!_aMC{Elzqa=eZuN}!sdO# z2lom0?i23YCrs=UHtrV&_Y0f%3m@Ds4DT1N-Y;CcU)Zu=*uG!5ZNIQ%zwpET!UOw- zhxhC6kON+x2!N26Cqn+X0G?X_qYGg70(fBo>|X#sTX`7gG2!cD!o6d{&&PxZ$Arhmgt0MUd`x)WA3KLap5B#A0HR485geg_{VXv*fK5_w~hJoL;<<6L7#kOh{o`VB?_S}4<-uOzcYB4WJ$CICi?O|80ab=7 z)k*t$16bS$7XJin0k(O36Zjv%cHld}ZNR?*w*z+qcY8bl7HSe60sb9$9QeJ*Q@|g9 zXMsNgyF7LSW5Dyke&8jK17IP7#caW1j$qL#Skwg;2^{HhtiT%tPV_ic;532LJ=O@U z6IS70TzU?A%xF_a6<^+2w`gow}$Y85dJNMpM)ThLp6f4 zBRJQiYOt7N;4lO22Id>+GSF?n7|0DQG_c6PQjg;dyurW;9w!?tmK!Vv4HiQNi^~mM zW#AT%u!cok!=j~z#he-zht;sC)gZ4y-Q&m_7U$LAuWIo28oZ+h>ubTJ9;ffrt z%;D-BK9a*1Jg&>J_{SWJJ98`!S%Ag*h4A!3cxEB2?SXT8;L;u#?txGDz-N2l3q5ds z58TiL-{^s@J@Bm__;wH6)&t+|f!llF`#rFu2Y%24clW?OJ#eqb&wF5J4?NKWzw3eL zJmNYeb!hRJRfo1Zba@TqElE~>-Db!gP#eRa5`4jVkaR)??G z;ZBdc>u{g9=Tc+%r3?_Zwr{$)=ci@n~@yjX{q>TsYA6LomwB8N?jU}zD% z^+QV)#)EKlZ35 z(2>B}1m2mzMvsRR_;mu0CGgt>{v&~>68J*`e@tL@$zf>;&Md)ACD>kqXG$M3!Kyfr?kNG7C5^F&TWD7Ti}8g zxUdB-Z-FaY;C7EYTHvl0_;Cx|(*pOlz#^;32ILw!$eM%Uj{JR#@E% zYg%D#E39jUb3Hb;LVqi~-{bODxUv;)_qd}Ke$)y-ZiSz;!o96I~Lour`Br8N4Nf^E0?0g9|gb!sCt%ewe}C8Qhb>PcyhLgI{@2 zhNuk7%W!%bR+V8*8O|)jx-z__3~w#N1!cIf440ST$}-&UaYq^MD#P7nxTg$1EyI0f zc&H2ym*I&rJXr=R5LV#i3Y=1bh|Huy*zT+;?$YJ=96$@5`e2XuD8TRPw!9k9Lw zKGXq29@{%$M+eXeQ70VV38!~LUngAJ3B#RmMJL?Q3E%95-*>`TCoJrOWnJ(<7yP0N z9_)gry5Nr!^jetSOTwK3di`k z^D9eX!%Z-76Aa!2e|Hmn?I!s8O|a`G7`+LCEe^>REV32+!C!j3X&bED27kK^ z{%#v=_xRQ}_|7)??l$<|Hn?LO+_?>Y;PK2hcy1evZ-c$t;K`fe4>!ZJH^U!qhQnWU zP%*21!W@8O)L)2Lj09q_DHJ{!3eqZstwP)?B&|ZZRcLD!PHYuUY86iP_+6{;`&MCL zMOai3Zk{FFGD}$1CY;kIP!)ozaAH+hRTYM+!WC6vdsXe}BfMvh@V+_1#yP^^9N~ny!m7E#J3O|} z75;6m@Xv<||8l7Cy+ef^hYG(wRQS!I!qUTp6^98oA0~YFFrj;%aO6DUsCMC`c46s! z;e`3ZviZV^^M#Y=3(MyVD?Cn{FZ|_vVds3|SM!BO=L;kAh2MHehtS#~yrDz*iw@!B z4qpFyEx`f^?;lwWC)Gpz(UBW+g30u2_+q#5fyM^9v;Ute! zx`j7(3#WDqE4zi&9v|-(KGiK;+bw*iTlieJ@TG2H>~LZ4;li$lu%{s`?Gt+YgtIp| zoV!8z$Ohrl8-&kp5Ps{?%(wi*?ZVe?7cSZ /dev/null 2>&1 +} + +for pid in $*; do + terminateTree $pid +done + diff --git a/pack/acp/opt/coc.nvim/build/index.js b/pack/acp/opt/coc.nvim/build/index.js new file mode 100644 index 0000000..381bf8e --- /dev/null +++ b/pack/acp/opt/coc.nvim/build/index.js @@ -0,0 +1,295 @@ +"use strict"; +global.__starttime = Date.now(); +global.__isMain = require.main === module; +"use strict";var wQ=Object.create;var Ib=Object.defineProperty;var xQ=Object.getOwnPropertyDescriptor;var CQ=Object.getOwnPropertyNames;var SQ=Object.getPrototypeOf,DQ=Object.prototype.hasOwnProperty;var D=(n,e)=>()=>(n&&(e=n(n=0)),e);var v=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),qs=(n,e)=>{for(var t in e)Ib(n,t,{get:e[t],enumerable:!0})},DI=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of CQ(e))!DQ.call(n,r)&&r!==t&&Ib(n,r,{get:()=>e[r],enumerable:!(i=xQ(e,r))||i.enumerable});return n};var sr=(n,e,t)=>(t=n!=null?wQ(SQ(n)):{},DI(e||!n||!n.__esModule?Ib(t,"default",{value:n,enumerable:!0}):t,n)),Jo=n=>DI(Ib({},"__esModule",{value:!0}),n);var RI=v((Dve,PI)=>{"use strict";var TI=(n=0)=>e=>`\x1B[${38+n};5;${e}m`,kI=(n=0)=>(e,t,i)=>`\x1B[${38+n};2;${e};${t};${i}m`;function TQ(){let n=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],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]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[r,o]of Object.entries(i))e[r]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},i[r]=e[r],n.set(o[0],o[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:n,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",e.color.ansi256=TI(),e.color.ansi16m=kI(),e.bgColor.ansi256=TI(10),e.bgColor.ansi16m=kI(10),Object.defineProperties(e,{rgbToAnsi256:{value:(t,i,r)=>t===i&&i===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(i/255*5)+Math.round(r/255*5),enumerable:!1},hexToRgb:{value:t=>{let i=/(?[a-f\d]{6}|[a-f\d]{3})/i.exec(t.toString(16));if(!i)return[0,0,0];let{colorString:r}=i.groups;r.length===3&&(r=r.split("").map(s=>s+s).join(""));let o=Number.parseInt(r,16);return[o>>16&255,o>>8&255,o&255]},enumerable:!1},hexToAnsi256:{value:t=>e.rgbToAnsi256(...e.hexToRgb(t)),enumerable:!1}}),e}Object.defineProperty(PI,"exports",{enumerable:!0,get:TQ})});var OS=v((Tve,_I)=>{function jS(n,e,t){var i,r,o,s,a;e==null&&(e=100);function l(){var c=Date.now()-s;c=0?i=setTimeout(l,e-c):(i=null,t||(a=n.apply(o,r),o=r=null))}var u=function(){o=this,r=arguments,s=Date.now();var c=t&&!i;return i||(i=setTimeout(l,e)),c&&(a=n.apply(o,r),o=r=null),a};return u.clear=function(){i&&(clearTimeout(i),i=null)},u.flush=function(){i&&(a=n.apply(o,r),o=r=null,clearTimeout(i),i=null)},u}jS.debounce=jS;_I.exports=jS});var EI=v(AS=>{var za=require("path"),Ys=process.platform==="win32",Ws=require("fs"),kQ=process.env.NODE_DEBUG&&/fs/.test(process.env.NODE_DEBUG);function PQ(){var n;if(kQ){var e=new Error;n=t}else n=i;return n;function t(r){r&&(e.message=r.message,r=e,i(r))}function i(r){if(r){if(process.throwDeprecation)throw r;if(!process.noDeprecation){var o="fs: missing callback "+(r.stack||r.message);process.traceDeprecation?console.trace(o):console.error(o)}}}}function RQ(n){return typeof n=="function"?n:PQ()}var kve=za.normalize;Ys?Uo=/(.*?)(?:[\/\\]+|$)/g:Uo=/(.*?)(?:[\/]+|$)/g;var Uo;Ys?zd=/^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/:zd=/^[\/]*/;var zd;AS.realpathSync=function(e,t){if(e=za.resolve(e),t&&Object.prototype.hasOwnProperty.call(t,e))return t[e];var i=e,r={},o={},s,a,l,u;c();function c(){var y=zd.exec(e);s=y[0].length,a=y[0],l=y[0],u="",Ys&&!o[l]&&(Ws.lstatSync(l),o[l]=!0)}for(;s=e.length)return t&&(t[r]=e),i(null,e);Uo.lastIndex=a;var y=Uo.exec(e);return c=l,l+=y[0],u=c+y[1],a=Uo.lastIndex,s[u]||t&&t[u]===u?process.nextTick(h):t&&Object.prototype.hasOwnProperty.call(t,u)?m(t[u]):Ws.lstat(u,g)}function g(y,w){if(y)return i(y);if(!w.isSymbolicLink())return s[u]=!0,t&&(t[u]=u),process.nextTick(h);if(!Ys){var x=w.dev.toString(32)+":"+w.ino.toString(32);if(o.hasOwnProperty(x))return f(null,o[x],u)}Ws.stat(u,function(C){if(C)return i(C);Ws.readlink(u,function(P,T){Ys||(o[x]=T),f(P,T)})})}function f(y,w,x){if(y)return i(y);var C=za.resolve(c,w);t&&(t[x]=C),m(C)}function m(y){e=za.resolve(y,e.slice(a)),d()}}});var qS=v((Rve,MI)=>{MI.exports=Zs;Zs.realpath=Zs;Zs.sync=BS;Zs.realpathSync=BS;Zs.monkeypatch=EQ;Zs.unmonkeypatch=IQ;var Fu=require("fs"),NS=Fu.realpath,HS=Fu.realpathSync,_Q=process.version,II=/^v[0-5]\./.test(_Q),LI=EI();function FI(n){return n&&n.syscall==="realpath"&&(n.code==="ELOOP"||n.code==="ENOMEM"||n.code==="ENAMETOOLONG")}function Zs(n,e,t){if(II)return NS(n,e,t);typeof e=="function"&&(t=e,e=null),NS(n,e,function(i,r){FI(i)?LI.realpath(n,e,t):t(i,r)})}function BS(n,e){if(II)return HS(n,e);try{return HS(n,e)}catch(t){if(FI(t))return LI.realpathSync(n,e);throw t}}function EQ(){Fu.realpath=Zs,Fu.realpathSync=BS}function IQ(){Fu.realpath=NS,Fu.realpathSync=HS}});var OI=v((_ve,jI)=>{var LQ=typeof process=="object"&&process&&process.platform==="win32";jI.exports=LQ?{sep:"\\"}:{sep:"/"}});var qI=v((Eve,BI)=>{"use strict";BI.exports=NI;function NI(n,e,t){n instanceof RegExp&&(n=AI(n,t)),e instanceof RegExp&&(e=AI(e,t));var i=HI(n,e,t);return i&&{start:i[0],end:i[1],pre:t.slice(0,i[0]),body:t.slice(i[0]+n.length,i[1]),post:t.slice(i[1]+e.length)}}function AI(n,e){var t=e.match(n);return t?t[0]:null}NI.range=HI;function HI(n,e,t){var i,r,o,s,a,l=t.indexOf(n),u=t.indexOf(e,l+1),c=l;if(l>=0&&u>0){if(n===e)return[l,u];for(i=[],o=t.length;c>=0&&!a;)c==l?(i.push(c),l=t.indexOf(n,c+1)):i.length==1?a=[i.pop(),u]:(r=i.pop(),r=0?l:u;i.length&&(a=[o,s])}return a}});var ZS=v((Ive,XI)=>{var WI=qI();XI.exports=jQ;var YI="\0SLASH"+Math.random()+"\0",ZI="\0OPEN"+Math.random()+"\0",YS="\0CLOSE"+Math.random()+"\0",JI="\0COMMA"+Math.random()+"\0",UI="\0PERIOD"+Math.random()+"\0";function WS(n){return parseInt(n,10)==n?parseInt(n,10):n.charCodeAt(0)}function FQ(n){return n.split("\\\\").join(YI).split("\\{").join(ZI).split("\\}").join(YS).split("\\,").join(JI).split("\\.").join(UI)}function MQ(n){return n.split(YI).join("\\").split(ZI).join("{").split(YS).join("}").split(JI).join(",").split(UI).join(".")}function $I(n){if(!n)return[""];var e=[],t=WI("{","}",n);if(!t)return n.split(",");var i=t.pre,r=t.body,o=t.post,s=i.split(",");s[s.length-1]+="{"+r+"}";var a=$I(o);return o.length&&(s[s.length-1]+=a.shift(),s.push.apply(s,a)),e.push.apply(e,s),e}function jQ(n){return n?(n.substr(0,2)==="{}"&&(n="\\{\\}"+n.substr(2)),Kd(FQ(n),!0).map(MQ)):[]}function OQ(n){return"{"+n+"}"}function AQ(n){return/^-?0\d/.test(n)}function NQ(n,e){return n<=e}function HQ(n,e){return n>=e}function Kd(n,e){var t=[],i=WI("{","}",n);if(!i)return[n];var r=i.pre,o=i.post.length?Kd(i.post,!1):[""];if(/\$$/.test(i.pre))for(var s=0;s=0;if(!c&&!d)return i.post.match(/,.*\}/)?(n=i.pre+"{"+i.body+YS+i.post,Kd(n)):[n];var h;if(c)h=i.body.split(/\.\./);else if(h=$I(i.body),h.length===1&&(h=Kd(h[0],!1).map(OQ),h.length===1))return o.map(function(X){return i.pre+h[0]+X});var g;if(c){var f=WS(h[0]),m=WS(h[1]),y=Math.max(h[0].length,h[1].length),w=h.length==3?Math.abs(WS(h[2])):1,x=NQ,C=m0){var q=new Array(j+1).join("0");T<0?O="-"+q+O.slice(1):O=q+O}}g.push(O)}}else{g=[];for(var K=0;K{var Zn=GS.exports=(n,e,t={})=>(Lb(e),!t.nocomment&&e.charAt(0)==="#"?!1:new Mu(e,t).match(n));GS.exports=Zn;var $S=OI();Zn.sep=$S.sep;var Hr=Symbol("globstar **");Zn.GLOBSTAR=Hr;var BQ=ZS(),GI={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},XS="[^/]",JS=XS+"*?",qQ="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",WQ="(?:(?!(?:\\/|^)\\.).)*?",QI=n=>n.split("").reduce((e,t)=>(e[t]=!0,e),{}),zI=QI("().*{}+?[]^$\\!"),YQ=QI("[.("),KI=/\/+/;Zn.filter=(n,e={})=>(t,i,r)=>Zn(t,n,e);var Js=(n,e={})=>{let t={};return Object.keys(n).forEach(i=>t[i]=n[i]),Object.keys(e).forEach(i=>t[i]=e[i]),t};Zn.defaults=n=>{if(!n||typeof n!="object"||!Object.keys(n).length)return Zn;let e=Zn,t=(i,r,o)=>e(i,r,Js(n,o));return t.Minimatch=class extends e.Minimatch{constructor(r,o){super(r,Js(n,o))}},t.Minimatch.defaults=i=>e.defaults(Js(n,i)).Minimatch,t.filter=(i,r)=>e.filter(i,Js(n,r)),t.defaults=i=>e.defaults(Js(n,i)),t.makeRe=(i,r)=>e.makeRe(i,Js(n,r)),t.braceExpand=(i,r)=>e.braceExpand(i,Js(n,r)),t.match=(i,r,o)=>e.match(i,r,Js(n,o)),t};Zn.braceExpand=(n,e)=>VI(n,e);var VI=(n,e={})=>(Lb(n),e.nobrace||!/\{(?:(?!\{).)*\}/.test(n)?[n]:BQ(n)),ZQ=1024*64,Lb=n=>{if(typeof n!="string")throw new TypeError("invalid pattern");if(n.length>ZQ)throw new TypeError("pattern is too long")},US=Symbol("subparse");Zn.makeRe=(n,e)=>new Mu(n,e||{}).makeRe();Zn.match=(n,e,t={})=>{let i=new Mu(e,t);return n=n.filter(r=>i.match(r)),i.options.nonull&&!n.length&&n.push(e),n};var JQ=n=>n.replace(/\\(.)/g,"$1"),UQ=n=>n.replace(/\\([^-\]])/g,"$1"),$Q=n=>n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),XQ=n=>n.replace(/[[\]\\]/g,"\\$&"),Mu=class{constructor(e,t){Lb(e),t||(t={}),this.options=t,this.set=[],this.pattern=e,this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.make()}debug(){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate();let i=this.globSet=this.braceExpand();t.debug&&(this.debug=(...r)=>console.error(...r)),this.debug(this.pattern,i),i=this.globParts=i.map(r=>r.split(KI)),this.debug(this.pattern,i),i=i.map((r,o,s)=>r.map(this.parse,this)),this.debug(this.pattern,i),i=i.filter(r=>r.indexOf(!1)===-1),this.debug(this.pattern,i),this.set=i}parseNegate(){if(this.options.nonegate)return;let e=this.pattern,t=!1,i=0;for(let r=0;r>> no match, partial?`,e,d,t,h),d===a))}var f;if(typeof u=="string"?(f=c===u,this.debug("string match",u,c,f)):(f=c.match(u),this.debug("pattern match",u,c,f)),!f)return!1}if(o===a&&s===l)return!0;if(o===a)return i;if(s===l)return o===a-1&&e[o]==="";throw new Error("wtf?")}braceExpand(){return VI(this.pattern,this.options)}parse(e,t){Lb(e);let i=this.options;if(e==="**")if(i.noglobstar)e="*";else return Hr;if(e==="")return"";let r="",o=!1,s=!1,a=[],l=[],u,c=!1,d=-1,h=-1,g,f,m,y=e.charAt(0)===".",w=i.dot||y,x=()=>y?"":w?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",C=j=>j.charAt(0)==="."?"":i.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",P=()=>{if(u){switch(u){case"*":r+=JS,o=!0;break;case"?":r+=XS,o=!0;break;default:r+="\\"+u;break}this.debug("clearStateChar %j %j",u,r),u=!1}};for(let j=0,q;j(z||(z="\\"),X+X+z+"|")),this.debug(`tail=%j + %s`,j,j,f,r);let q=f.type==="*"?JS:f.type==="?"?XS:"\\"+f.type;o=!0,r=r.slice(0,f.reStart)+q+"\\("+j}P(),s&&(r+="\\\\");let T=YQ[r.charAt(0)];for(let j=l.length-1;j>-1;j--){let q=l[j],K=r.slice(0,q.reStart),X=r.slice(q.reStart,q.reEnd-8),z=r.slice(q.reEnd),B=r.slice(q.reEnd-8,q.reEnd)+z,fe=K.split(")").length,ve=K.split("(").length-fe,Le=z;for(let H=0;H(s=s.map(a=>typeof a=="string"?$Q(a):a===Hr?Hr:a._src).reduce((a,l)=>(a[a.length-1]===Hr&&l===Hr||a.push(l),a),[]),s.forEach((a,l)=>{a!==Hr||s[l-1]===Hr||(l===0?s.length>1?s[l+1]="(?:\\/|"+i+"\\/)?"+s[l+1]:s[l]=i:l===s.length-1?s[l-1]+="(?:\\/|"+i+")?":(s[l-1]+="(?:\\/|\\/"+i+"\\/)"+s[l+1],s[l+1]=Hr))}),s.filter(a=>a!==Hr).join("/"))).join("|");o="^(?:"+o+")$",this.negate&&(o="^(?!"+o+").*$");try{this.regexp=new RegExp(o,r)}catch{this.regexp=!1}return this.regexp}match(e,t=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&t)return!0;let i=this.options;$S.sep!=="/"&&(e=e.split($S.sep).join("/")),e=e.split(KI),this.debug(this.pattern,"split",e);let r=this.set;this.debug(this.pattern,"set",r);let o;for(let s=e.length-1;s>=0&&(o=e[s],!o);s--);for(let s=0;s{typeof Object.create=="function"?zS.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:zS.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var tL=v((jve,QS)=>{try{if(KS=require("util"),typeof KS.inherits!="function")throw"";QS.exports=KS.inherits}catch{QS.exports=eL()}var KS});var e0=v(Us=>{Us.setopts=e7;Us.ownProp=iL;Us.makeAbs=Qd;Us.finish=t7;Us.mark=i7;Us.isIgnored=rL;Us.childrenIgnored=n7;function iL(n,e){return Object.prototype.hasOwnProperty.call(n,e)}var GQ=require("fs"),Ka=require("path"),zQ=Fb(),nL=require("path").isAbsolute,VS=zQ.Minimatch;function KQ(n,e){return n.localeCompare(e,"en")}function QQ(n,e){n.ignore=e.ignore||[],Array.isArray(n.ignore)||(n.ignore=[n.ignore]),n.ignore.length&&(n.ignore=n.ignore.map(VQ))}function VQ(n){var e=null;if(n.slice(-3)==="/**"){var t=n.replace(/(\/\*\*)+$/,"");e=new VS(t,{dot:!0})}return{matcher:new VS(n,{dot:!0}),gmatcher:e}}function e7(n,e,t){if(t||(t={}),t.matchBase&&e.indexOf("/")===-1){if(t.noglobstar)throw new Error("base matching requires globstar");e="**/"+e}n.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,n.windowsPathsNoEscape&&(e=e.replace(/\\/g,"/")),n.silent=!!t.silent,n.pattern=e,n.strict=t.strict!==!1,n.realpath=!!t.realpath,n.realpathCache=t.realpathCache||Object.create(null),n.follow=!!t.follow,n.dot=!!t.dot,n.mark=!!t.mark,n.nodir=!!t.nodir,n.nodir&&(n.mark=!0),n.sync=!!t.sync,n.nounique=!!t.nounique,n.nonull=!!t.nonull,n.nosort=!!t.nosort,n.nocase=!!t.nocase,n.stat=!!t.stat,n.noprocess=!!t.noprocess,n.absolute=!!t.absolute,n.fs=t.fs||GQ,n.maxLength=t.maxLength||1/0,n.cache=t.cache||Object.create(null),n.statCache=t.statCache||Object.create(null),n.symlinks=t.symlinks||Object.create(null),QQ(n,t),n.changedCwd=!1;var i=process.cwd();iL(t,"cwd")?(n.cwd=Ka.resolve(t.cwd),n.changedCwd=n.cwd!==i):n.cwd=Ka.resolve(i),n.root=t.root||Ka.resolve(n.cwd,"/"),n.root=Ka.resolve(n.root),n.cwdAbs=nL(n.cwd)?n.cwd:Qd(n,n.cwd),n.nomount=!!t.nomount,process.platform==="win32"&&(n.root=n.root.replace(/\\/g,"/"),n.cwd=n.cwd.replace(/\\/g,"/"),n.cwdAbs=n.cwdAbs.replace(/\\/g,"/")),t.nonegate=!0,t.nocomment=!0,n.minimatch=new VS(e,t),n.options=n.minimatch.options}function t7(n){for(var e=n.nounique,t=e?[]:Object.create(null),i=0,r=n.matches.length;i{lL.exports=aL;aL.GlobSync=Di;var r7=qS(),oL=Fb(),Ave=oL.Minimatch,Nve=n0().Glob,Hve=require("util"),t0=require("path"),sL=require("assert"),Mb=require("path").isAbsolute,Qa=e0(),o7=Qa.setopts,i0=Qa.ownProp,s7=Qa.childrenIgnored,a7=Qa.isIgnored;function aL(n,e){if(typeof e=="function"||arguments.length===3)throw new TypeError(`callback provided to sync glob +See: https://github.com/isaacs/node-glob/issues/167`);return new Di(n,e).found}function Di(n,e){if(!n)throw new Error("must provide pattern");if(typeof e=="function"||arguments.length===3)throw new TypeError(`callback provided to sync glob +See: https://github.com/isaacs/node-glob/issues/167`);if(!(this instanceof Di))return new Di(n,e);if(o7(this,n,e),this.noprocess)return this;var t=this.minimatch.set.length;this.matches=new Array(t);for(var i=0;ithis.maxLength)return!1;if(!this.stat&&i0(this.cache,e)){var s=this.cache[e];if(Array.isArray(s)&&(s="DIR"),!t||s==="DIR")return s;if(t&&s==="FILE")return!1}var i,r=this.statCache[e];if(!r){var o;try{o=this.fs.lstatSync(e)}catch(a){if(a&&(a.code==="ENOENT"||a.code==="ENOTDIR"))return this.statCache[e]=!1,!1}if(o&&o.isSymbolicLink())try{r=this.fs.statSync(e)}catch{r=o}else r=o}this.statCache[e]=r;var s=!0;return r&&(s=r.isDirectory()?"DIR":"FILE"),this.cache[e]=this.cache[e]||s,t&&s==="FILE"?!1:s};Di.prototype._mark=function(n){return Qa.mark(this,n)};Di.prototype._makeAbs=function(n){return Qa.makeAbs(this,n)}});var r0=v((qve,dL)=>{dL.exports=cL;function cL(n,e){if(n&&e)return cL(n)(e);if(typeof n!="function")throw new TypeError("need wrapper function");return Object.keys(n).forEach(function(i){t[i]=n[i]}),t;function t(){for(var i=new Array(arguments.length),r=0;r{var hL=r0();o0.exports=hL(jb);o0.exports.strict=hL(gL);jb.proto=jb(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return jb(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return gL(this)},configurable:!0})});function jb(n){var e=function(){return e.called?e.value:(e.called=!0,e.value=n.apply(this,arguments))};return e.called=!1,e}function gL(n){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=n.apply(this,arguments)},t=n.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var fL=v((Yve,pL)=>{var l7=r0(),Vd=Object.create(null),u7=s0();pL.exports=l7(c7);function c7(n,e){return Vd[n]?(Vd[n].push(e),null):(Vd[n]=[e],d7(n))}function d7(n){return u7(function e(){var t=Vd[n],i=t.length,r=h7(arguments);try{for(var o=0;oi?(t.splice(0,i),process.nextTick(function(){e.apply(null,r)})):delete Vd[n]}})}function h7(n){for(var e=n.length,t=[],i=0;i{bL.exports=Va;var g7=qS(),mL=Fb(),Zve=mL.Minimatch,p7=tL(),f7=require("events").EventEmitter,a0=require("path"),l0=require("assert"),eh=require("path").isAbsolute,c0=uL(),el=e0(),m7=el.setopts,u0=el.ownProp,d0=fL(),Jve=require("util"),b7=el.childrenIgnored,y7=el.isIgnored,v7=s0();function Va(n,e,t){if(typeof e=="function"&&(t=e,e={}),e||(e={}),e.sync){if(t)throw new TypeError("callback provided to sync glob");return c0(n,e)}return new vt(n,e,t)}Va.sync=c0;var w7=Va.GlobSync=c0.GlobSync;Va.glob=Va;function x7(n,e){if(e===null||typeof e!="object")return n;for(var t=Object.keys(e),i=t.length;i--;)n[t[i]]=e[t[i]];return n}Va.hasMagic=function(n,e){var t=x7({},e);t.noprocess=!0;var i=new vt(n,t),r=i.minimatch.set;if(!n)return!1;if(r.length>1)return!0;for(var o=0;othis.maxLength)return e();if(!this.stat&&u0(this.cache,t)){var r=this.cache[t];if(Array.isArray(r)&&(r="DIR"),!i||r==="DIR")return e(null,r);if(i&&r==="FILE")return e()}var o,s=this.statCache[t];if(s!==void 0){if(s===!1)return e(null,s);var a=s.isDirectory()?"DIR":"FILE";return i&&a==="FILE"?e():e(null,a,s)}var l=this,u=d0("stat\0"+t,c);u&&l.fs.lstat(t,u);function c(d,h){if(h&&h.isSymbolicLink())return l.fs.stat(t,function(g,f){g?l._stat2(n,t,null,h,e):l._stat2(n,t,g,f,e)});l._stat2(n,t,d,h,e)}};vt.prototype._stat2=function(n,e,t,i,r){if(t&&(t.code==="ENOENT"||t.code==="ENOTDIR"))return this.statCache[e]=!1,r();var o=n.slice(-1)==="/";if(this.statCache[e]=i,e.slice(-1)==="/"&&i&&!i.isDirectory())return r(null,!1,i);var s=!0;return i&&(s=i.isDirectory()?"DIR":"FILE"),this.cache[e]=this.cache[e]||s,o&&s==="FILE"?r():r(null,s,i)}});var vL=v(($ve,yL)=>{var S7=typeof process=="object"&&process&&process.platform==="win32";yL.exports=S7?{sep:"\\"}:{sep:"/"}});var TL=v((Gve,m0)=>{var Jn=m0.exports=(n,e,t={})=>(Ob(e),!t.nocomment&&e.charAt(0)==="#"?!1:new ju(e,t).match(n));m0.exports=Jn;var p0=vL();Jn.sep=p0.sep;var Br=Symbol("globstar **");Jn.GLOBSTAR=Br;var D7=ZS(),wL={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},f0="[^/]",h0=f0+"*?",T7="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",k7="(?:(?!(?:\\/|^)\\.).)*?",SL=n=>n.split("").reduce((e,t)=>(e[t]=!0,e),{}),xL=SL("().*{}+?[]^$\\!"),P7=SL("[.("),CL=/\/+/;Jn.filter=(n,e={})=>(t,i,r)=>Jn(t,n,e);var $s=(n,e={})=>{let t={};return Object.keys(n).forEach(i=>t[i]=n[i]),Object.keys(e).forEach(i=>t[i]=e[i]),t};Jn.defaults=n=>{if(!n||typeof n!="object"||!Object.keys(n).length)return Jn;let e=Jn,t=(i,r,o)=>e(i,r,$s(n,o));return t.Minimatch=class extends e.Minimatch{constructor(r,o){super(r,$s(n,o))}},t.Minimatch.defaults=i=>e.defaults($s(n,i)).Minimatch,t.filter=(i,r)=>e.filter(i,$s(n,r)),t.defaults=i=>e.defaults($s(n,i)),t.makeRe=(i,r)=>e.makeRe(i,$s(n,r)),t.braceExpand=(i,r)=>e.braceExpand(i,$s(n,r)),t.match=(i,r,o)=>e.match(i,r,$s(n,o)),t};Jn.braceExpand=(n,e)=>DL(n,e);var DL=(n,e={})=>(Ob(n),e.nobrace||!/\{(?:(?!\{).)*\}/.test(n)?[n]:D7(n)),R7=1024*64,Ob=n=>{if(typeof n!="string")throw new TypeError("invalid pattern");if(n.length>R7)throw new TypeError("pattern is too long")},g0=Symbol("subparse");Jn.makeRe=(n,e)=>new ju(n,e||{}).makeRe();Jn.match=(n,e,t={})=>{let i=new ju(e,t);return n=n.filter(r=>i.match(r)),i.options.nonull&&!n.length&&n.push(e),n};var _7=n=>n.replace(/\\(.)/g,"$1"),E7=n=>n.replace(/\\([^-\]])/g,"$1"),I7=n=>n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),L7=n=>n.replace(/[[\]\\]/g,"\\$&"),ju=class{constructor(e,t){Ob(e),t||(t={}),this.options=t,this.set=[],this.pattern=e,this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.make()}debug(){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate();let i=this.globSet=this.braceExpand();t.debug&&(this.debug=(...r)=>console.error(...r)),this.debug(this.pattern,i),i=this.globParts=i.map(r=>r.split(CL)),this.debug(this.pattern,i),i=i.map((r,o,s)=>r.map(this.parse,this)),this.debug(this.pattern,i),i=i.filter(r=>r.indexOf(!1)===-1),this.debug(this.pattern,i),this.set=i}parseNegate(){if(this.options.nonegate)return;let e=this.pattern,t=!1,i=0;for(let r=0;r>> no match, partial?`,e,d,t,h),d===a))}var f;if(typeof u=="string"?(f=c===u,this.debug("string match",u,c,f)):(f=c.match(u),this.debug("pattern match",u,c,f)),!f)return!1}if(o===a&&s===l)return!0;if(o===a)return i;if(s===l)return o===a-1&&e[o]==="";throw new Error("wtf?")}braceExpand(){return DL(this.pattern,this.options)}parse(e,t){Ob(e);let i=this.options;if(e==="**")if(i.noglobstar)e="*";else return Br;if(e==="")return"";let r="",o=!!i.nocase,s=!1,a=[],l=[],u,c=!1,d=-1,h=-1,g,f,m,y=e.charAt(0)==="."?"":i.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",w=()=>{if(u){switch(u){case"*":r+=h0,o=!0;break;case"?":r+=f0,o=!0;break;default:r+="\\"+u;break}this.debug("clearStateChar %j %j",u,r),u=!1}};for(let P=0,T;P(q||(q="\\"),j+j+q+"|")),this.debug(`tail=%j + %s`,P,P,f,r);let T=f.type==="*"?h0:f.type==="?"?f0:"\\"+f.type;o=!0,r=r.slice(0,f.reStart)+T+"\\("+P}w(),s&&(r+="\\\\");let x=P7[r.charAt(0)];for(let P=l.length-1;P>-1;P--){let T=l[P],O=r.slice(0,T.reStart),j=r.slice(T.reStart,T.reEnd-8),q=r.slice(T.reEnd),K=r.slice(T.reEnd-8,T.reEnd)+q,X=O.split("(").length-1,z=q;for(let fe=0;fe(s=s.map(a=>typeof a=="string"?I7(a):a===Br?Br:a._src).reduce((a,l)=>(a[a.length-1]===Br&&l===Br||a.push(l),a),[]),s.forEach((a,l)=>{a!==Br||s[l-1]===Br||(l===0?s.length>1?s[l+1]="(?:\\/|"+i+"\\/)?"+s[l+1]:s[l]=i:l===s.length-1?s[l-1]+="(?:\\/|"+i+")?":(s[l-1]+="(?:\\/|\\/"+i+"\\/)"+s[l+1],s[l+1]=Br))}),s.filter(a=>a!==Br).join("/"))).join("|");o="^(?:"+o+")$",this.negate&&(o="^(?!"+o+").*$");try{this.regexp=new RegExp(o,r)}catch{this.regexp=!1}return this.regexp}match(e,t=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&t)return!0;let i=this.options;p0.sep!=="/"&&(e=e.split(p0.sep).join("/")),e=e.split(CL),this.debug(this.pattern,"split",e);let r=this.set;this.debug(this.pattern,"set",r);let o;for(let s=e.length-1;s>=0&&(o=e[s],!o);s--);for(let s=0;s{_L.exports=RL;RL.sync=M7;var kL=require("fs");function F7(n,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{ML.exports=LL;LL.sync=j7;var IL=require("fs");function LL(n,e,t){IL.stat(n,function(i,r){t(i,i?!1:FL(r,e))})}function j7(n,e){return FL(IL.statSync(n),e)}function FL(n,e){return n.isFile()&&O7(n,e)}function O7(n,e){var t=n.mode,i=n.uid,r=n.gid,o=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),s=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),u=parseInt("001",8),c=a|l,d=t&u||t&l&&r===s||t&a&&i===o||t&c&&o===0;return d}});var AL=v((Vve,OL)=>{var Qve=require("fs"),Ab;process.platform==="win32"||global.TESTING_WINDOWS?Ab=EL():Ab=jL();OL.exports=b0;b0.sync=A7;function b0(n,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,r){b0(n,e||{},function(o,s){o?r(o):i(s)})})}Ab(n,e||{},function(i,r){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,r=!1),t(i,r)})}function A7(n,e){try{return Ab.sync(n,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var ZL=v((ewe,YL)=>{var Ou=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",NL=require("path"),N7=Ou?";":":",HL=AL(),BL=n=>Object.assign(new Error(`not found: ${n}`),{code:"ENOENT"}),qL=(n,e)=>{let t=e.colon||N7,i=n.match(/\//)||Ou&&n.match(/\\/)?[""]:[...Ou?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],r=Ou?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=Ou?r.split(t):[""];return Ou&&n.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:i,pathExt:o,pathExtExe:r}},WL=(n,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:r,pathExtExe:o}=qL(n,e),s=[],a=u=>new Promise((c,d)=>{if(u===i.length)return e.all&&s.length?c(s):d(BL(n));let h=i[u],g=/^".*"$/.test(h)?h.slice(1,-1):h,f=NL.join(g,n),m=!g&&/^\.[\\\/]/.test(n)?n.slice(0,2)+f:f;c(l(m,u,0))}),l=(u,c,d)=>new Promise((h,g)=>{if(d===r.length)return h(a(c+1));let f=r[d];HL(u+f,{pathExt:o},(m,y)=>{if(!m&&y)if(e.all)s.push(u+f);else return h(u+f);return h(l(u,c,d+1))})});return t?a(0).then(u=>t(null,u),t):a(0)},H7=(n,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:r}=qL(n,e),o=[];for(let s=0;s{var B7="2.0.0",q7=Number.MAX_SAFE_INTEGER||9007199254740991,W7=16;JL.exports={SEMVER_SPEC_VERSION:B7,MAX_LENGTH:256,MAX_SAFE_INTEGER:q7,MAX_SAFE_COMPONENT_LENGTH:W7}});var ih=v((iwe,UL)=>{var Y7=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...n)=>console.error("SEMVER",...n):()=>{};UL.exports=Y7});var tl=v((Xs,$L)=>{var{MAX_SAFE_COMPONENT_LENGTH:y0}=th(),Z7=ih();Xs=$L.exports={};var J7=Xs.re=[],we=Xs.src=[],xe=Xs.t={},U7=0,Ve=(n,e,t)=>{let i=U7++;Z7(n,i,e),xe[n]=i,we[i]=e,J7[i]=new RegExp(e,t?"g":void 0)};Ve("NUMERICIDENTIFIER","0|[1-9]\\d*");Ve("NUMERICIDENTIFIERLOOSE","[0-9]+");Ve("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Ve("MAINVERSION",`(${we[xe.NUMERICIDENTIFIER]})\\.(${we[xe.NUMERICIDENTIFIER]})\\.(${we[xe.NUMERICIDENTIFIER]})`);Ve("MAINVERSIONLOOSE",`(${we[xe.NUMERICIDENTIFIERLOOSE]})\\.(${we[xe.NUMERICIDENTIFIERLOOSE]})\\.(${we[xe.NUMERICIDENTIFIERLOOSE]})`);Ve("PRERELEASEIDENTIFIER",`(?:${we[xe.NUMERICIDENTIFIER]}|${we[xe.NONNUMERICIDENTIFIER]})`);Ve("PRERELEASEIDENTIFIERLOOSE",`(?:${we[xe.NUMERICIDENTIFIERLOOSE]}|${we[xe.NONNUMERICIDENTIFIER]})`);Ve("PRERELEASE",`(?:-(${we[xe.PRERELEASEIDENTIFIER]}(?:\\.${we[xe.PRERELEASEIDENTIFIER]})*))`);Ve("PRERELEASELOOSE",`(?:-?(${we[xe.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${we[xe.PRERELEASEIDENTIFIERLOOSE]})*))`);Ve("BUILDIDENTIFIER","[0-9A-Za-z-]+");Ve("BUILD",`(?:\\+(${we[xe.BUILDIDENTIFIER]}(?:\\.${we[xe.BUILDIDENTIFIER]})*))`);Ve("FULLPLAIN",`v?${we[xe.MAINVERSION]}${we[xe.PRERELEASE]}?${we[xe.BUILD]}?`);Ve("FULL",`^${we[xe.FULLPLAIN]}$`);Ve("LOOSEPLAIN",`[v=\\s]*${we[xe.MAINVERSIONLOOSE]}${we[xe.PRERELEASELOOSE]}?${we[xe.BUILD]}?`);Ve("LOOSE",`^${we[xe.LOOSEPLAIN]}$`);Ve("GTLT","((?:<|>)?=?)");Ve("XRANGEIDENTIFIERLOOSE",`${we[xe.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Ve("XRANGEIDENTIFIER",`${we[xe.NUMERICIDENTIFIER]}|x|X|\\*`);Ve("XRANGEPLAIN",`[v=\\s]*(${we[xe.XRANGEIDENTIFIER]})(?:\\.(${we[xe.XRANGEIDENTIFIER]})(?:\\.(${we[xe.XRANGEIDENTIFIER]})(?:${we[xe.PRERELEASE]})?${we[xe.BUILD]}?)?)?`);Ve("XRANGEPLAINLOOSE",`[v=\\s]*(${we[xe.XRANGEIDENTIFIERLOOSE]})(?:\\.(${we[xe.XRANGEIDENTIFIERLOOSE]})(?:\\.(${we[xe.XRANGEIDENTIFIERLOOSE]})(?:${we[xe.PRERELEASELOOSE]})?${we[xe.BUILD]}?)?)?`);Ve("XRANGE",`^${we[xe.GTLT]}\\s*${we[xe.XRANGEPLAIN]}$`);Ve("XRANGELOOSE",`^${we[xe.GTLT]}\\s*${we[xe.XRANGEPLAINLOOSE]}$`);Ve("COERCE",`(^|[^\\d])(\\d{1,${y0}})(?:\\.(\\d{1,${y0}}))?(?:\\.(\\d{1,${y0}}))?(?:$|[^\\d])`);Ve("COERCERTL",we[xe.COERCE],!0);Ve("LONETILDE","(?:~>?)");Ve("TILDETRIM",`(\\s*)${we[xe.LONETILDE]}\\s+`,!0);Xs.tildeTrimReplace="$1~";Ve("TILDE",`^${we[xe.LONETILDE]}${we[xe.XRANGEPLAIN]}$`);Ve("TILDELOOSE",`^${we[xe.LONETILDE]}${we[xe.XRANGEPLAINLOOSE]}$`);Ve("LONECARET","(?:\\^)");Ve("CARETTRIM",`(\\s*)${we[xe.LONECARET]}\\s+`,!0);Xs.caretTrimReplace="$1^";Ve("CARET",`^${we[xe.LONECARET]}${we[xe.XRANGEPLAIN]}$`);Ve("CARETLOOSE",`^${we[xe.LONECARET]}${we[xe.XRANGEPLAINLOOSE]}$`);Ve("COMPARATORLOOSE",`^${we[xe.GTLT]}\\s*(${we[xe.LOOSEPLAIN]})$|^$`);Ve("COMPARATOR",`^${we[xe.GTLT]}\\s*(${we[xe.FULLPLAIN]})$|^$`);Ve("COMPARATORTRIM",`(\\s*)${we[xe.GTLT]}\\s*(${we[xe.LOOSEPLAIN]}|${we[xe.XRANGEPLAIN]})`,!0);Xs.comparatorTrimReplace="$1$2$3";Ve("HYPHENRANGE",`^\\s*(${we[xe.XRANGEPLAIN]})\\s+-\\s+(${we[xe.XRANGEPLAIN]})\\s*$`);Ve("HYPHENRANGELOOSE",`^\\s*(${we[xe.XRANGEPLAINLOOSE]})\\s+-\\s+(${we[xe.XRANGEPLAINLOOSE]})\\s*$`);Ve("STAR","(<|>)?=?\\s*\\*");Ve("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Ve("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var nh=v((nwe,XL)=>{var $7=["includePrerelease","loose","rtl"],X7=n=>n?typeof n!="object"?{loose:!0}:$7.filter(e=>n[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};XL.exports=X7});var v0=v((rwe,KL)=>{var GL=/^[0-9]+$/,zL=(n,e)=>{let t=GL.test(n),i=GL.test(e);return t&&i&&(n=+n,e=+e),n===e?0:t&&!i?-1:i&&!t?1:nzL(e,n);KL.exports={compareIdentifiers:zL,rcompareIdentifiers:G7}});var en=v((owe,tF)=>{var Nb=ih(),{MAX_LENGTH:QL,MAX_SAFE_INTEGER:Hb}=th(),{re:VL,t:eF}=tl(),z7=nh(),{compareIdentifiers:Au}=v0(),Un=class{constructor(e,t){if(t=z7(t),e instanceof Un){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>QL)throw new TypeError(`version is longer than ${QL} characters`);Nb("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?VL[eF.LOOSE]:VL[eF.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>Hb||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Hb||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Hb||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(r=>{if(/^[0-9]+$/.test(r)){let o=+r;if(o>=0&&o=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(Au(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};tF.exports=Un});var il=v((swe,oF)=>{var{MAX_LENGTH:K7}=th(),{re:iF,t:nF}=tl(),rF=en(),Q7=nh(),V7=(n,e)=>{if(e=Q7(e),n instanceof rF)return n;if(typeof n!="string"||n.length>K7||!(e.loose?iF[nF.LOOSE]:iF[nF.FULL]).test(n))return null;try{return new rF(n,e)}catch{return null}};oF.exports=V7});var aF=v((awe,sF)=>{var eV=il(),tV=(n,e)=>{let t=eV(n,e);return t?t.version:null};sF.exports=tV});var uF=v((lwe,lF)=>{var iV=il(),nV=(n,e)=>{let t=iV(n.trim().replace(/^[=v]+/,""),e);return t?t.version:null};lF.exports=nV});var hF=v((uwe,dF)=>{var cF=en(),rV=(n,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new cF(n instanceof cF?n.version:n,t).inc(e,i).version}catch{return null}};dF.exports=rV});var ar=v((cwe,pF)=>{var gF=en(),oV=(n,e,t)=>new gF(n,t).compare(new gF(e,t));pF.exports=oV});var Bb=v((dwe,fF)=>{var sV=ar(),aV=(n,e,t)=>sV(n,e,t)===0;fF.exports=aV});var yF=v((hwe,bF)=>{var mF=il(),lV=Bb(),uV=(n,e)=>{if(lV(n,e))return null;{let t=mF(n),i=mF(e),r=t.prerelease.length||i.prerelease.length,o=r?"pre":"",s=r?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return o+a;return s}};bF.exports=uV});var wF=v((gwe,vF)=>{var cV=en(),dV=(n,e)=>new cV(n,e).major;vF.exports=dV});var CF=v((pwe,xF)=>{var hV=en(),gV=(n,e)=>new hV(n,e).minor;xF.exports=gV});var DF=v((fwe,SF)=>{var pV=en(),fV=(n,e)=>new pV(n,e).patch;SF.exports=fV});var kF=v((mwe,TF)=>{var mV=il(),bV=(n,e)=>{let t=mV(n,e);return t&&t.prerelease.length?t.prerelease:null};TF.exports=bV});var RF=v((bwe,PF)=>{var yV=ar(),vV=(n,e,t)=>yV(e,n,t);PF.exports=vV});var EF=v((ywe,_F)=>{var wV=ar(),xV=(n,e)=>wV(n,e,!0);_F.exports=xV});var qb=v((vwe,LF)=>{var IF=en(),CV=(n,e,t)=>{let i=new IF(n,t),r=new IF(e,t);return i.compare(r)||i.compareBuild(r)};LF.exports=CV});var MF=v((wwe,FF)=>{var SV=qb(),DV=(n,e)=>n.sort((t,i)=>SV(t,i,e));FF.exports=DV});var OF=v((xwe,jF)=>{var TV=qb(),kV=(n,e)=>n.sort((t,i)=>TV(i,t,e));jF.exports=kV});var rh=v((Cwe,AF)=>{var PV=ar(),RV=(n,e,t)=>PV(n,e,t)>0;AF.exports=RV});var Wb=v((Swe,NF)=>{var _V=ar(),EV=(n,e,t)=>_V(n,e,t)<0;NF.exports=EV});var w0=v((Dwe,HF)=>{var IV=ar(),LV=(n,e,t)=>IV(n,e,t)!==0;HF.exports=LV});var Yb=v((Twe,BF)=>{var FV=ar(),MV=(n,e,t)=>FV(n,e,t)>=0;BF.exports=MV});var Zb=v((kwe,qF)=>{var jV=ar(),OV=(n,e,t)=>jV(n,e,t)<=0;qF.exports=OV});var x0=v((Pwe,WF)=>{var AV=Bb(),NV=w0(),HV=rh(),BV=Yb(),qV=Wb(),WV=Zb(),YV=(n,e,t,i)=>{switch(e){case"===":return typeof n=="object"&&(n=n.version),typeof t=="object"&&(t=t.version),n===t;case"!==":return typeof n=="object"&&(n=n.version),typeof t=="object"&&(t=t.version),n!==t;case"":case"=":case"==":return AV(n,t,i);case"!=":return NV(n,t,i);case">":return HV(n,t,i);case">=":return BV(n,t,i);case"<":return qV(n,t,i);case"<=":return WV(n,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};WF.exports=YV});var ZF=v((Rwe,YF)=>{var ZV=en(),JV=il(),{re:Jb,t:Ub}=tl(),UV=(n,e)=>{if(n instanceof ZV)return n;if(typeof n=="number"&&(n=String(n)),typeof n!="string")return null;e=e||{};let t=null;if(!e.rtl)t=n.match(Jb[Ub.COERCE]);else{let i;for(;(i=Jb[Ub.COERCERTL].exec(n))&&(!t||t.index+t[0].length!==n.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),Jb[Ub.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;Jb[Ub.COERCERTL].lastIndex=-1}return t===null?null:JV(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};YF.exports=UV});var UF=v((_we,JF)=>{"use strict";JF.exports=function(n){n.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var $b=v((Ewe,$F)=>{"use strict";$F.exports=ht;ht.Node=nl;ht.create=ht;function ht(n){var e=this;if(e instanceof ht||(e=new ht),e.tail=null,e.head=null,e.length=0,n&&typeof n.forEach=="function")n.forEach(function(r){e.push(r)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var r=0;i!==null;r++)t=n(t,i.value,r),i=i.next;return t};ht.prototype.reduceReverse=function(n,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var r=this.length-1;i!==null;r--)t=n(t,i.value,r),i=i.prev;return t};ht.prototype.toArray=function(){for(var n=new Array(this.length),e=0,t=this.head;t!==null;e++)n[e]=t.value,t=t.next;return n};ht.prototype.toArrayReverse=function(){for(var n=new Array(this.length),e=0,t=this.tail;t!==null;e++)n[e]=t.value,t=t.prev;return n};ht.prototype.slice=function(n,e){e=e||this.length,e<0&&(e+=this.length),n=n||0,n<0&&(n+=this.length);var t=new ht;if(ethis.length&&(e=this.length);for(var i=0,r=this.head;r!==null&&ithis.length&&(e=this.length);for(var i=this.length,r=this.tail;r!==null&&i>e;i--)r=r.prev;for(;r!==null&&i>n;i--,r=r.prev)t.push(r.value);return t};ht.prototype.splice=function(n,e,...t){n>this.length&&(n=this.length-1),n<0&&(n=this.length+n);for(var i=0,r=this.head;r!==null&&i{"use strict";var zV=$b(),rl=Symbol("max"),Xo=Symbol("length"),Nu=Symbol("lengthCalculator"),sh=Symbol("allowStale"),ol=Symbol("maxAge"),$o=Symbol("dispose"),XF=Symbol("noDisposeOnSet"),Li=Symbol("lruList"),qr=Symbol("cache"),zF=Symbol("updateAgeOnGet"),C0=()=>1,D0=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[rl]=e.max||1/0,i=e.length||C0;if(this[Nu]=typeof i!="function"?C0:i,this[sh]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[ol]=e.maxAge||0,this[$o]=e.dispose,this[XF]=e.noDisposeOnSet||!1,this[zF]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[rl]=e||1/0,oh(this)}get max(){return this[rl]}set allowStale(e){this[sh]=!!e}get allowStale(){return this[sh]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[ol]=e,oh(this)}get maxAge(){return this[ol]}set lengthCalculator(e){typeof e!="function"&&(e=C0),e!==this[Nu]&&(this[Nu]=e,this[Xo]=0,this[Li].forEach(t=>{t.length=this[Nu](t.value,t.key),this[Xo]+=t.length})),oh(this)}get lengthCalculator(){return this[Nu]}get length(){return this[Xo]}get itemCount(){return this[Li].length}rforEach(e,t){t=t||this;for(let i=this[Li].tail;i!==null;){let r=i.prev;GF(this,e,i,t),i=r}}forEach(e,t){t=t||this;for(let i=this[Li].head;i!==null;){let r=i.next;GF(this,e,i,t),i=r}}keys(){return this[Li].toArray().map(e=>e.key)}values(){return this[Li].toArray().map(e=>e.value)}reset(){this[$o]&&this[Li]&&this[Li].length&&this[Li].forEach(e=>this[$o](e.key,e.value)),this[qr]=new Map,this[Li]=new zV,this[Xo]=0}dump(){return this[Li].map(e=>Xb(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Li]}set(e,t,i){if(i=i||this[ol],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let r=i?Date.now():0,o=this[Nu](t,e);if(this[qr].has(e)){if(o>this[rl])return Hu(this,this[qr].get(e)),!1;let l=this[qr].get(e).value;return this[$o]&&(this[XF]||this[$o](e,l.value)),l.now=r,l.maxAge=i,l.value=t,this[Xo]+=o-l.length,l.length=o,this.get(e),oh(this),!0}let s=new T0(e,t,o,r,i);return s.length>this[rl]?(this[$o]&&this[$o](e,t),!1):(this[Xo]+=s.length,this[Li].unshift(s),this[qr].set(e,this[Li].head),oh(this),!0)}has(e){if(!this[qr].has(e))return!1;let t=this[qr].get(e).value;return!Xb(this,t)}get(e){return S0(this,e,!0)}peek(e){return S0(this,e,!1)}pop(){let e=this[Li].tail;return e?(Hu(this,e),e.value):null}del(e){Hu(this,this[qr].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let r=e[i],o=r.e||0;if(o===0)this.set(r.k,r.v);else{let s=o-t;s>0&&this.set(r.k,r.v,s)}}}prune(){this[qr].forEach((e,t)=>S0(this,t,!1))}},S0=(n,e,t)=>{let i=n[qr].get(e);if(i){let r=i.value;if(Xb(n,r)){if(Hu(n,i),!n[sh])return}else t&&(n[zF]&&(i.value.now=Date.now()),n[Li].unshiftNode(i));return r.value}},Xb=(n,e)=>{if(!e||!e.maxAge&&!n[ol])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:n[ol]&&t>n[ol]},oh=n=>{if(n[Xo]>n[rl])for(let e=n[Li].tail;n[Xo]>n[rl]&&e!==null;){let t=e.prev;Hu(n,e),e=t}},Hu=(n,e)=>{if(e){let t=e.value;n[$o]&&n[$o](t.key,t.value),n[Xo]-=t.length,n[qr].delete(t.key),n[Li].removeNode(e)}},T0=class{constructor(e,t,i,r,o){this.key=e,this.value=t,this.length=i,this.now=r,this.maxAge=o||0}},GF=(n,e,t,i)=>{let r=t.value;Xb(n,r)&&(Hu(n,t),n[sh]||(r=void 0)),r&&e.call(i,r.value,r.key,n)};KF.exports=D0});var lr=v((Lwe,iM)=>{var sl=class{constructor(e,t){if(t=QV(t),e instanceof sl)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new sl(e.raw,t);if(e instanceof k0)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split("||").map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(r=>!eM(r[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let r of this.set)if(r.length===1&&nee(r[0])){this.set=[r];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,r=VF.get(i);if(r)return r;let o=this.options.loose,s=o?Pn[gn.HYPHENRANGELOOSE]:Pn[gn.HYPHENRANGE];e=e.replace(s,gee(this.options.includePrerelease)),Vt("hyphen replace",e),e=e.replace(Pn[gn.COMPARATORTRIM],eee),Vt("comparator trim",e),e=e.replace(Pn[gn.TILDETRIM],tee),e=e.replace(Pn[gn.CARETTRIM],iee),e=e.split(/\s+/).join(" ");let a=e.split(" ").map(d=>ree(d,this.options)).join(" ").split(/\s+/).map(d=>hee(d,this.options));o&&(a=a.filter(d=>(Vt("loose invalid filter",d,this.options),!!d.match(Pn[gn.COMPARATORLOOSE])))),Vt("range list",a);let l=new Map,u=a.map(d=>new k0(d,this.options));for(let d of u){if(eM(d))return[d];l.set(d.value,d)}l.size>1&&l.has("")&&l.delete("");let c=[...l.values()];return VF.set(i,c),c}intersects(e,t){if(!(e instanceof sl))throw new TypeError("a Range is required");return this.set.some(i=>tM(i,t)&&e.set.some(r=>tM(r,t)&&i.every(o=>r.every(s=>o.intersects(s,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new VV(e,this.options)}catch{return!1}for(let t=0;tn.value==="<0.0.0-0",nee=n=>n.value==="",tM=(n,e)=>{let t=!0,i=n.slice(),r=i.pop();for(;t&&i.length;)t=i.every(o=>r.intersects(o,e)),r=i.pop();return t},ree=(n,e)=>(Vt("comp",n,e),n=aee(n,e),Vt("caret",n),n=oee(n,e),Vt("tildes",n),n=uee(n,e),Vt("xrange",n),n=dee(n,e),Vt("stars",n),n),pn=n=>!n||n.toLowerCase()==="x"||n==="*",oee=(n,e)=>n.trim().split(/\s+/).map(t=>see(t,e)).join(" "),see=(n,e)=>{let t=e.loose?Pn[gn.TILDELOOSE]:Pn[gn.TILDE];return n.replace(t,(i,r,o,s,a)=>{Vt("tilde",n,i,r,o,s,a);let l;return pn(r)?l="":pn(o)?l=`>=${r}.0.0 <${+r+1}.0.0-0`:pn(s)?l=`>=${r}.${o}.0 <${r}.${+o+1}.0-0`:a?(Vt("replaceTilde pr",a),l=`>=${r}.${o}.${s}-${a} <${r}.${+o+1}.0-0`):l=`>=${r}.${o}.${s} <${r}.${+o+1}.0-0`,Vt("tilde return",l),l})},aee=(n,e)=>n.trim().split(/\s+/).map(t=>lee(t,e)).join(" "),lee=(n,e)=>{Vt("caret",n,e);let t=e.loose?Pn[gn.CARETLOOSE]:Pn[gn.CARET],i=e.includePrerelease?"-0":"";return n.replace(t,(r,o,s,a,l)=>{Vt("caret",n,r,o,s,a,l);let u;return pn(o)?u="":pn(s)?u=`>=${o}.0.0${i} <${+o+1}.0.0-0`:pn(a)?o==="0"?u=`>=${o}.${s}.0${i} <${o}.${+s+1}.0-0`:u=`>=${o}.${s}.0${i} <${+o+1}.0.0-0`:l?(Vt("replaceCaret pr",l),o==="0"?s==="0"?u=`>=${o}.${s}.${a}-${l} <${o}.${s}.${+a+1}-0`:u=`>=${o}.${s}.${a}-${l} <${o}.${+s+1}.0-0`:u=`>=${o}.${s}.${a}-${l} <${+o+1}.0.0-0`):(Vt("no pr"),o==="0"?s==="0"?u=`>=${o}.${s}.${a}${i} <${o}.${s}.${+a+1}-0`:u=`>=${o}.${s}.${a}${i} <${o}.${+s+1}.0-0`:u=`>=${o}.${s}.${a} <${+o+1}.0.0-0`),Vt("caret return",u),u})},uee=(n,e)=>(Vt("replaceXRanges",n,e),n.split(/\s+/).map(t=>cee(t,e)).join(" ")),cee=(n,e)=>{n=n.trim();let t=e.loose?Pn[gn.XRANGELOOSE]:Pn[gn.XRANGE];return n.replace(t,(i,r,o,s,a,l)=>{Vt("xRange",n,i,r,o,s,a,l);let u=pn(o),c=u||pn(s),d=c||pn(a),h=d;return r==="="&&h&&(r=""),l=e.includePrerelease?"-0":"",u?r===">"||r==="<"?i="<0.0.0-0":i="*":r&&h?(c&&(s=0),a=0,r===">"?(r=">=",c?(o=+o+1,s=0,a=0):(s=+s+1,a=0)):r==="<="&&(r="<",c?o=+o+1:s=+s+1),r==="<"&&(l="-0"),i=`${r+o}.${s}.${a}${l}`):c?i=`>=${o}.0.0${l} <${+o+1}.0.0-0`:d&&(i=`>=${o}.${s}.0${l} <${o}.${+s+1}.0-0`),Vt("xRange return",i),i})},dee=(n,e)=>(Vt("replaceStars",n,e),n.trim().replace(Pn[gn.STAR],"")),hee=(n,e)=>(Vt("replaceGTE0",n,e),n.trim().replace(Pn[e.includePrerelease?gn.GTE0PRE:gn.GTE0],"")),gee=n=>(e,t,i,r,o,s,a,l,u,c,d,h,g)=>(pn(i)?t="":pn(r)?t=`>=${i}.0.0${n?"-0":""}`:pn(o)?t=`>=${i}.${r}.0${n?"-0":""}`:s?t=`>=${t}`:t=`>=${t}${n?"-0":""}`,pn(u)?l="":pn(c)?l=`<${+u+1}.0.0-0`:pn(d)?l=`<${u}.${+c+1}.0-0`:h?l=`<=${u}.${c}.${d}-${h}`:n?l=`<${u}.${c}.${+d+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),pee=(n,e,t)=>{for(let i=0;i0){let r=n[i].semver;if(r.major===e.major&&r.minor===e.minor&&r.patch===e.patch)return!0}return!1}return!0}});var ah=v((Fwe,aM)=>{var lh=Symbol("SemVer ANY"),Bu=class{static get ANY(){return lh}constructor(e,t){if(t=fee(t),e instanceof Bu){if(e.loose===!!t.loose)return e;e=e.value}R0("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===lh?this.value="":this.value=this.operator+this.semver.version,R0("comp",this)}parse(e){let t=this.options.loose?nM[rM.COMPARATORLOOSE]:nM[rM.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new oM(i[2],this.options.loose):this.semver=lh}toString(){return this.value}test(e){if(R0("Comparator.test",e,this.options.loose),this.semver===lh||e===lh)return!0;if(typeof e=="string")try{e=new oM(e,this.options)}catch{return!1}return P0(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Bu))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new sM(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new sM(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),r=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),o=this.semver.version===e.semver.version,s=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=P0(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=P0(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||r||o&&s||a||l}};aM.exports=Bu;var fee=nh(),{re:nM,t:rM}=tl(),P0=x0(),R0=ih(),oM=en(),sM=lr()});var uh=v((Mwe,lM)=>{var mee=lr(),bee=(n,e,t)=>{try{e=new mee(e,t)}catch{return!1}return e.test(n)};lM.exports=bee});var cM=v((jwe,uM)=>{var yee=lr(),vee=(n,e)=>new yee(n,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));uM.exports=vee});var hM=v((Owe,dM)=>{var wee=en(),xee=lr(),Cee=(n,e,t)=>{let i=null,r=null,o=null;try{o=new xee(e,t)}catch{return null}return n.forEach(s=>{o.test(s)&&(!i||r.compare(s)===-1)&&(i=s,r=new wee(i,t))}),i};dM.exports=Cee});var pM=v((Awe,gM)=>{var See=en(),Dee=lr(),Tee=(n,e,t)=>{let i=null,r=null,o=null;try{o=new Dee(e,t)}catch{return null}return n.forEach(s=>{o.test(s)&&(!i||r.compare(s)===1)&&(i=s,r=new See(i,t))}),i};gM.exports=Tee});var bM=v((Nwe,mM)=>{var _0=en(),kee=lr(),fM=rh(),Pee=(n,e)=>{n=new kee(n,e);let t=new _0("0.0.0");if(n.test(t)||(t=new _0("0.0.0-0"),n.test(t)))return t;t=null;for(let i=0;i{let a=new _0(s.semver.version);switch(s.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!o||fM(a,o))&&(o=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${s.operator}`)}}),o&&(!t||fM(t,o))&&(t=o)}return t&&n.test(t)?t:null};mM.exports=Pee});var vM=v((Hwe,yM)=>{var Ree=lr(),_ee=(n,e)=>{try{return new Ree(n,e).range||"*"}catch{return null}};yM.exports=_ee});var Gb=v((Bwe,SM)=>{var Eee=en(),CM=ah(),{ANY:Iee}=CM,Lee=lr(),Fee=uh(),wM=rh(),xM=Wb(),Mee=Zb(),jee=Yb(),Oee=(n,e,t,i)=>{n=new Eee(n,i),e=new Lee(e,i);let r,o,s,a,l;switch(t){case">":r=wM,o=Mee,s=xM,a=">",l=">=";break;case"<":r=xM,o=jee,s=wM,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Fee(n,e,i))return!1;for(let u=0;u{g.semver===Iee&&(g=new CM(">=0.0.0")),d=d||g,h=h||g,r(g.semver,d.semver,i)?d=g:s(g.semver,h.semver,i)&&(h=g)}),d.operator===a||d.operator===l||(!h.operator||h.operator===a)&&o(n,h.semver))return!1;if(h.operator===l&&s(n,h.semver))return!1}return!0};SM.exports=Oee});var TM=v((qwe,DM)=>{var Aee=Gb(),Nee=(n,e,t)=>Aee(n,e,">",t);DM.exports=Nee});var PM=v((Wwe,kM)=>{var Hee=Gb(),Bee=(n,e,t)=>Hee(n,e,"<",t);kM.exports=Bee});var EM=v((Ywe,_M)=>{var RM=lr(),qee=(n,e,t)=>(n=new RM(n,t),e=new RM(e,t),n.intersects(e));_M.exports=qee});var LM=v((Zwe,IM)=>{var Wee=uh(),Yee=ar();IM.exports=(n,e,t)=>{let i=[],r=null,o=null,s=n.sort((c,d)=>Yee(c,d,t));for(let c of s)Wee(c,e,t)?(o=c,r||(r=c)):(o&&i.push([r,o]),o=null,r=null);r&&i.push([r,null]);let a=[];for(let[c,d]of i)c===d?a.push(c):!d&&c===s[0]?a.push("*"):d?c===s[0]?a.push(`<=${d}`):a.push(`${c} - ${d}`):a.push(`>=${c}`);let l=a.join(" || "),u=typeof e.raw=="string"?e.raw:String(e);return l.length{var FM=lr(),zb=ah(),{ANY:E0}=zb,ch=uh(),I0=ar(),Zee=(n,e,t={})=>{if(n===e)return!0;n=new FM(n,t),e=new FM(e,t);let i=!1;e:for(let r of n.set){for(let o of e.set){let s=Jee(r,o,t);if(i=i||s!==null,s)continue e}if(i)return!1}return!0},Jee=(n,e,t)=>{if(n===e)return!0;if(n.length===1&&n[0].semver===E0){if(e.length===1&&e[0].semver===E0)return!0;t.includePrerelease?n=[new zb(">=0.0.0-0")]:n=[new zb(">=0.0.0")]}if(e.length===1&&e[0].semver===E0){if(t.includePrerelease)return!0;e=[new zb(">=0.0.0")]}let i=new Set,r,o;for(let g of n)g.operator===">"||g.operator===">="?r=MM(r,g,t):g.operator==="<"||g.operator==="<="?o=jM(o,g,t):i.add(g.semver);if(i.size>1)return null;let s;if(r&&o){if(s=I0(r.semver,o.semver,t),s>0)return null;if(s===0&&(r.operator!==">="||o.operator!=="<="))return null}for(let g of i){if(r&&!ch(g,String(r),t)||o&&!ch(g,String(o),t))return null;for(let f of e)if(!ch(g,String(f),t))return!1;return!0}let a,l,u,c,d=o&&!t.includePrerelease&&o.semver.prerelease.length?o.semver:!1,h=r&&!t.includePrerelease&&r.semver.prerelease.length?r.semver:!1;d&&d.prerelease.length===1&&o.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(let g of e){if(c=c||g.operator===">"||g.operator===">=",u=u||g.operator==="<"||g.operator==="<=",r){if(h&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===h.major&&g.semver.minor===h.minor&&g.semver.patch===h.patch&&(h=!1),g.operator===">"||g.operator===">="){if(a=MM(r,g,t),a===g&&a!==r)return!1}else if(r.operator===">="&&!ch(r.semver,String(g),t))return!1}if(o){if(d&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===d.major&&g.semver.minor===d.minor&&g.semver.patch===d.patch&&(d=!1),g.operator==="<"||g.operator==="<="){if(l=jM(o,g,t),l===g&&l!==o)return!1}else if(o.operator==="<="&&!ch(o.semver,String(g),t))return!1}if(!g.operator&&(o||r)&&s!==0)return!1}return!(r&&u&&!o&&s!==0||o&&c&&!r&&s!==0||h||d)},MM=(n,e,t)=>{if(!n)return e;let i=I0(n.semver,e.semver,t);return i>0?n:i<0||e.operator===">"&&n.operator===">="?e:n},jM=(n,e,t)=>{if(!n)return e;let i=I0(n.semver,e.semver,t);return i<0?n:i>0||e.operator==="<"&&n.operator==="<="?e:n};OM.exports=Zee});var BM=v((Uwe,HM)=>{var L0=tl(),Uee=th(),$ee=en(),NM=v0(),Xee=il(),Gee=aF(),zee=uF(),Kee=hF(),Qee=yF(),Vee=wF(),ete=CF(),tte=DF(),ite=kF(),nte=ar(),rte=RF(),ote=EF(),ste=qb(),ate=MF(),lte=OF(),ute=rh(),cte=Wb(),dte=Bb(),hte=w0(),gte=Yb(),pte=Zb(),fte=x0(),mte=ZF(),bte=ah(),yte=lr(),vte=uh(),wte=cM(),xte=hM(),Cte=pM(),Ste=bM(),Dte=vM(),Tte=Gb(),kte=TM(),Pte=PM(),Rte=EM(),_te=LM(),Ete=AM();HM.exports={parse:Xee,valid:Gee,clean:zee,inc:Kee,diff:Qee,major:Vee,minor:ete,patch:tte,prerelease:ite,compare:nte,rcompare:rte,compareLoose:ote,compareBuild:ste,sort:ate,rsort:lte,gt:ute,lt:cte,eq:dte,neq:hte,gte,lte:pte,cmp:fte,coerce:mte,Comparator:bte,Range:yte,satisfies:vte,toComparators:wte,maxSatisfying:xte,minSatisfying:Cte,minVersion:Ste,validRange:Dte,outside:Tte,gtr:kte,ltr:Pte,intersects:Rte,simplifyRange:_te,subset:Ete,SemVer:$ee,re:L0.re,src:L0.src,tokens:L0.t,SEMVER_SPEC_VERSION:Uee.SEMVER_SPEC_VERSION,compareIdentifiers:NM.compareIdentifiers,rcompareIdentifiers:NM.rcompareIdentifiers}});var WM=v(($we,qM)=>{"use strict";qM.exports=({onlyFirst:n=!1}={})=>{let 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,n?void 0:"g")}});var Kb=v((Xwe,YM)=>{"use strict";var Ite=WM();YM.exports=n=>typeof n=="string"?n.replace(Ite(),""):n});var KM=v((Gwe,zM)=>{var mo=-1,Wr=1,Rn=0;function dh(n,e,t,i){if(n===e)return n?[[Rn,n]]:[];if(t!=null){var r=Ote(n,e,t);if(r)return r}var o=M0(n,e),s=n.substring(0,o);n=n.substring(o),e=e.substring(o),o=j0(n,e);var a=n.substring(n.length-o);n=n.substring(0,n.length-o),e=e.substring(0,e.length-o);var l=Lte(n,e);return s&&l.unshift([Rn,s]),a&&l.push([Rn,a]),JM(l,i),l}function Lte(n,e){var t;if(!n)return[[Wr,e]];if(!e)return[[mo,n]];var i=n.length>e.length?n:e,r=n.length>e.length?e:n,o=i.indexOf(r);if(o!==-1)return t=[[Wr,i.substring(0,o)],[Rn,r],[Wr,i.substring(o+r.length)]],n.length>e.length&&(t[0][0]=t[2][0]=mo),t;if(r.length===1)return[[mo,n],[Wr,e]];var s=Mte(n,e);if(s){var a=s[0],l=s[1],u=s[2],c=s[3],d=s[4],h=dh(a,u),g=dh(l,c);return h.concat([[Rn,d]],g)}return Fte(n,e)}function Fte(n,e){for(var t=n.length,i=e.length,r=Math.ceil((t+i)/2),o=r,s=2*r,a=new Array(s),l=new Array(s),u=0;ut)g+=2;else if(P>i)h+=2;else if(d){var T=o+c-w;if(T>=0&&T=O)return ZM(n,e,C,P)}}}for(var j=-y+f;j<=y-m;j+=2){var T=o+j,O;j===-y||j!==y&&l[T-1]t)m+=2;else if(q>i)f+=2;else if(!d){var x=o+c-j;if(x>=0&&x=O)return ZM(n,e,C,P)}}}}return[[mo,n],[Wr,e]]}function ZM(n,e,t,i){var r=n.substring(0,t),o=e.substring(0,i),s=n.substring(t),a=e.substring(i),l=dh(r,o),u=dh(s,a);return l.concat(u)}function M0(n,e){if(!n||!e||n.charAt(0)!==e.charAt(0))return 0;for(var t=0,i=Math.min(n.length,e.length),r=i,o=0;te.length?n:e,i=n.length>e.length?e:n;if(t.length<4||i.length*2=g.length?[C,P,T,O,x]:null}var o=r(t,i,Math.ceil(t.length/4)),s=r(t,i,Math.ceil(t.length/2)),a;if(!o&&!s)return null;s?o?a=o[4].length>s[4].length?o:s:a=s:a=o;var l,u,c,d;n.length>e.length?(l=a[0],u=a[1],c=a[2],d=a[3]):(c=a[0],d=a[1],l=a[2],u=a[3]);var h=a[4];return[l,u,c,d,h]}function JM(n,e){n.push([Rn,""]);for(var t=0,i=0,r=0,o="",s="",a;t=0&&GM(n[l][1])){var u=n[l][1].slice(-1);if(n[l][1]=n[l][1].slice(0,-1),o=u+o,s=u+s,!n[l][1]){n.splice(l,1),t--;var c=l-1;n[c]&&n[c][0]===Wr&&(r++,s=n[c][1]+s,c--),n[c]&&n[c][0]===mo&&(i++,o=n[c][1]+o,c--),l=c}}if(XM(n[t][1])){var u=n[t][1].charAt(0);n[t][1]=n[t][1].slice(1),o+=u,s+=u}}if(t0||s.length>0){o.length>0&&s.length>0&&(a=M0(s,o),a!==0&&(l>=0?n[l][1]+=s.substring(0,a):(n.splice(0,0,[Rn,s.substring(0,a)]),t++),s=s.substring(a),o=o.substring(a)),a=j0(s,o),a!==0&&(n[t][1]=s.substring(s.length-a)+n[t][1],s=s.substring(0,s.length-a),o=o.substring(0,o.length-a)));var d=r+i;o.length===0&&s.length===0?(n.splice(t-d,d),t=t-d):o.length===0?(n.splice(t-d,d,[Wr,s]),t=t-d+1):s.length===0?(n.splice(t-d,d,[mo,o]),t=t-d+1):(n.splice(t-d,d,[mo,o],[Wr,s]),t=t-d+2)}t!==0&&n[t-1][0]===Rn?(n[t-1][1]+=n[t][1],n.splice(t,1)):t++,r=0,i=0,o="",s="";break}}n[n.length-1][1]===""&&n.pop();var h=!1;for(t=1;t=55296&&n<=56319}function $M(n){return n>=56320&&n<=57343}function XM(n){return $M(n.charCodeAt(0))}function GM(n){return UM(n.charCodeAt(n.length-1))}function jte(n){for(var e=[],t=0;t0&&e.push(n[t]);return e}function F0(n,e,t,i){return GM(n)||XM(i)?null:jte([[Rn,n],[mo,e],[Wr,t],[Rn,i]])}function Ote(n,e,t){var i=typeof t=="number"?{index:t,length:0}:t.oldRange,r=typeof t=="number"?null:t.newRange,o=n.length,s=e.length;if(i.length===0&&(r===null||r.length===0)){var a=i.index,l=n.slice(0,a),u=n.slice(a),c=r?r.index:null;e:{var d=a+s-o;if(c!==null&&c!==d||d<0||d>s)break e;var h=e.slice(0,d),g=e.slice(d);if(g!==u)break e;var f=Math.min(a,d),m=l.slice(0,f),y=h.slice(0,f);if(m!==y)break e;var w=l.slice(f),x=h.slice(f);return F0(m,w,x,u)}e:{if(c!==null&&c!==a)break e;var C=a,h=e.slice(0,C),g=e.slice(C);if(h!==l)break e;var P=Math.min(o-C,s-C),T=u.slice(u.length-P),O=g.slice(g.length-P);if(T!==O)break e;var w=u.slice(0,u.length-P),x=g.slice(0,g.length-P);return F0(l,w,x,T)}}if(i.length>0&&r&&r.length===0){e:{var m=n.slice(0,i.index),T=n.slice(i.index+i.length),f=m.length,P=T.length;if(s{QM.exports=["\0","","","","","","","\x07","\b"," ",` +`,"\v","\f","\r","","","","","","","","","","","","","","\x1B","","","",""," ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","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","[","\\","]","^","_","`","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","{","|","}","~","\x7F","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""," ","!","C/","PS","$?","Y=","|","SS",'"',"(c)","a","<<","!","","(r)","-","deg","+-","2","3","'","u","P","*",",","1","o",">>","1/4","1/2","3/4","?","A","A","A","A","A","A","AE","C","E","E","E","E","I","I","I","I","D","N","O","O","O","O","O","x","O","U","U","U","U","U","Th","ss","a","a","a","a","a","a","ae","c","e","e","e","e","i","i","i","i","d","n","o","o","o","o","o","/","o","u","u","u","u","y","th","y"]});var tj=v((Kwe,ej)=>{ej.exports=["A","a","A","a","A","a","C","c","C","c","C","c","C","c","D","d","D","d","E","e","E","e","E","e","E","e","E","e","G","g","G","g","G","g","G","g","H","h","H","h","I","i","I","i","I","i","I","i","I","i","IJ","","J","j","K","k","k","L","l","L","l","L","l","L","l","L","l","N","n","N","n","N","n","'n","ng","NG","O","o","O","o","O","o","OE","oe","R","r","R","r","R","r","S","s","S","s","S","s","S","s","T","t","T","t","T","t","U","u","U","u","U","u","U","u","U","u","U","u","W","w","Y","y","Y","Z","z","Z","z","Z","z","s","b","B","B","b","6","6","O","C","c","D","D","D","d","d","3","@","E","F","f","G","G","hv","I","I","K","k","l","l","W","N","n","O","O","o","OI","oi","P","p","YR","2","2","SH","sh","t","T","t","T","U","u","Y","V","Y","y","Z","z","ZH","ZH","zh","zh","2","5","5","ts","w","|","||","|=","!","DZ","Dz","dz","LJ","Lj","lj","NJ","Nj","nj","A","a","I","i","O","o","U","u","U","u","U","u","U","u","U","u","@","A","a","A","a","AE","ae","G","g","G","g","K","k","O","o","O","o","ZH","zh","j","DZ","D","dz","G","g","HV","W","N","n","A","a","AE","ae","O","o"]});var nj=v((Qwe,ij)=>{ij.exports=["A","a","A","a","E","e","E","e","I","i","I","i","O","o","O","o","R","r","R","r","U","u","U","u","S","s","T","t","Y","y","H","h","[?]","[?]","OU","ou","Z","z","A","a","E","e","O","o","O","o","O","o","O","o","Y","y","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","a","a","a","b","o","c","d","d","e","@","@","e","e","e","e","j","g","g","g","g","u","Y","h","h","i","i","I","l","l","l","lZ","W","W","m","n","n","n","o","OE","O","F","R","R","R","R","r","r","R","R","R","s","S","j","S","S","t","t","U","U","v","^","W","Y","Y","z","z","Z","Z","?","?","?","C","@","B","E","G","H","j","k","L","q","?","?","dz","dZ","dz","ts","tS","tC","fN","ls","lz","WW","]]","[?]","[?]","k","h","j","r","r","r","r","w","y","'",'"',"`","'","`","`","'","?","?","<",">","^","V","^","V","'","-","/","\\",",","_","\\","/",":",".","`","'","^","V","+","-","V",".","@",",","~",'"',"R","X","G","l","s","x","?","","","","","","","","V","=",'"',"[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var oj=v((Vwe,rj)=>{rj.exports=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","'",",","[?]","[?]","[?]","[?]","","[?]","[?]","[?]","?","[?]","[?]","[?]","[?]","[?]","","","A",";","E","E","I","[?]","O","[?]","U","O","I","A","B","G","D","E","Z","E","Th","I","K","L","M","N","Ks","O","P","R","[?]","S","T","U","Ph","Kh","Ps","O","I","U","a","e","e","i","u","a","b","g","d","e","z","e","th","i","k","l","m","n","x","o","p","r","s","s","t","u","ph","kh","ps","o","i","u","o","u","o","[?]","b","th","U","U","U","ph","p","&","[?]","[?]","St","st","W","w","Q","q","Sp","sp","Sh","sh","F","f","Kh","kh","H","h","G","g","CH","ch","Ti","ti","k","r","c","j","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var aj=v((exe,sj)=>{sj.exports=["Ie","Io","Dj","Gj","Ie","Dz","I","Yi","J","Lj","Nj","Tsh","Kj","I","U","Dzh","A","B","V","G","D","Ie","Zh","Z","I","I","K","L","M","N","O","P","R","S","T","U","F","Kh","Ts","Ch","Sh","Shch","","Y","'","E","Iu","Ia","a","b","v","gh","d","ie","zh","z","i","i","k","l","m","n","o","p","r","s","t","u","f","kh","ts","ch","sh","shch","","y","'","e","iu","ia","ie","io","dj","gj","ie","dz","i","yi","j","lj","nj","tsh","kj","i","u","dzh","O","o","E","e","Ie","ie","E","e","Ie","ie","O","o","Io","io","Ks","ks","Ps","ps","F","f","Y","y","Y","y","u","u","O","o","O","o","Ot","ot","Q","q","*1000*","","","","","[?]","*100.000*","*1.000.000*","[?]","[?]",'"','"',"R'","r'","G'","g'","G'","g'","G'","g'","Zh'","zh'","Z'","z'","K'","k'","K'","k'","K'","k'","K'","k'","N'","n'","Ng","ng","P'","p'","Kh","kh","S'","s'","T'","t'","U","u","U'","u'","Kh'","kh'","Tts","tts","Ch'","ch'","Ch'","ch'","H","h","Ch","ch","Ch'","ch'","`","Zh","zh","K'","k'","[?]","[?]","N'","n'","[?]","[?]","Ch","ch","[?]","[?]","[?]","a","a","A","a","Ae","ae","Ie","ie","@","@","@","@","Zh","zh","Z","z","Dz","dz","I","i","I","i","O","o","O","o","O","o","E","e","U","u","U","u","U","u","Ch","ch","[?]","[?]","Y","y","[?]","[?]","[?]","[?]","[?]"]});var uj=v((txe,lj)=>{lj.exports=["[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","A","B","G","D","E","Z","E","E","T`","Zh","I","L","Kh","Ts","K","H","Dz","Gh","Ch","M","Y","N","Sh","O","Ch`","P","J","Rh","S","V","T","R","Ts`","W","P`","K`","O","F","[?]","[?]","<","'","/","!",",","?",".","[?]","a","b","g","d","e","z","e","e","t`","zh","i","l","kh","ts","k","h","dz","gh","ch","m","y","n","sh","o","ch`","p","j","rh","s","v","t","r","ts`","w","p`","k`","o","f","ew","[?]",".","-","[?]","[?]","[?]","[?]","[?]","[?]","","","","","","","","","","","","","","","","","","[?]","","","","","","","","","","","","","","@","e","a","o","i","e","e","a","a","o","[?]","u","'","","","","","","",":","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","","b","g","d","h","v","z","kh","t","y","k","k","l","m","m","n","n","s","`","p","p","ts","ts","q","r","sh","t","[?]","[?]","[?]","[?]","[?]","V","oy","i","'",'"',"[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var dj=v((ixe,cj)=>{cj.exports=["[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]",",","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]",";","[?]","[?]","[?]","?","[?]","","a","'","w'","","y'","","b","@","t","th","j","H","kh","d","dh","r","z","s","sh","S","D","T","Z","aa","G","[?]","[?]","[?]","[?]","[?]","","f","q","k","l","m","n","h","w","~","y","an","un","in","a","u","i","W","","","'","'","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","0","1","2","3","4","5","6","7","8","9","%",".",",","*","[?]","[?]","","'","'","'","","'","'w","'u","'y","tt","tth","b","t","T","p","th","bh","'h","H","ny","dy","H","ch","cch","dd","D","D","Dt","dh","ddh","d","D","D","rr","R","R","R","R","R","R","j","R","S","S","S","S","S","T","GH","F","F","F","v","f","ph","Q","Q","kh","k","K","K","ng","K","g","G","N","G","G","G","L","L","L","L","N","N","N","N","N","h","Ch","hy","h","H","@","W","oe","oe","u","yu","yu","W","v","y","Y","Y","W","","","y","y'",".","ae","","","","","","","","@","#","","","","","","","","","","","^","","","","","[?]","[?]","0","1","2","3","4","5","6","7","8","9","Sh","D","Gh","&","+m"]});var gj=v((nxe,hj)=>{hj.exports=["//","/",",","!","!","-",",",",",";","?","~","{","}","*","[?]","","'","","b","g","g","d","d","h","w","z","H","t","t","y","yh","k","l","m","n","s","s","`","p","p","S","q","r","sh","t","[?]","[?]","[?]","a","a","a","A","A","A","e","e","e","E","i","i","u","u","u","o","","`","'","","","X","Q","@","@","|","+","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","h","sh","n","r","b","L","k","'","v","m","f","dh","th","l","g","ny","s","d","z","t","y","p","j","ch","tt","hh","kh","th","z","sh","s","d","t","z","`","gh","q","w","a","aa","i","ee","u","oo","e","ey","o","oa","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var fj=v((rxe,pj)=>{pj.exports=["[?]","N","N","H","[?]","a","aa","i","ii","u","uu","R","L","eN","e","e","ai","oN","o","o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","nnn","p","ph","b","bh","m","y","r","rr","l","l","lll","v","sh","ss","s","h","[?]","[?]","'","'","aa","i","ii","u","uu","R","RR","eN","e","e","ai","oN","o","o","au","","[?]","[?]","AUM","'","'","`","'","[?]","[?]","[?]","q","khh","ghh","z","dddh","rh","f","yy","RR","LL","L","LL"," / "," // ","0","1","2","3","4","5","6","7","8","9",".","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","N","N","H","[?]","a","aa","i","ii","u","uu","R","RR","[?]","[?]","e","ai","[?]","[?]","o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","[?]","p","ph","b","bh","m","y","r","[?]","l","[?]","[?]","[?]","sh","ss","s","h","[?]","[?]","'","[?]","aa","i","ii","u","uu","R","RR","[?]","[?]","e","ai","[?]","[?]","o","au","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","+","[?]","[?]","[?]","[?]","rr","rh","[?]","yy","RR","LL","L","LL","[?]","[?]","0","1","2","3","4","5","6","7","8","9","r'","r`","Rs","Rs","1/","2/","3/","4/"," 1 - 1/","/16","","[?]","[?]","[?]","[?]"]});var bj=v((oxe,mj)=>{mj.exports=["[?]","[?]","N","[?]","[?]","a","aa","i","ii","u","uu","[?]","[?]","[?]","[?]","ee","ai","[?]","[?]","oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","[?]","p","ph","b","bb","m","y","r","[?]","l","ll","[?]","v","sh","[?]","s","h","[?]","[?]","'","[?]","aa","i","ii","u","uu","[?]","[?]","[?]","[?]","ee","ai","[?]","[?]","oo","au","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","khh","ghh","z","rr","[?]","f","[?]","[?]","[?]","[?]","[?]","[?]","[?]","0","1","2","3","4","5","6","7","8","9","N","H","","","G.E.O.","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","N","N","H","[?]","a","aa","i","ii","u","uu","R","[?]","eN","[?]","e","ai","oN","[?]","o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","[?]","p","ph","b","bh","m","ya","r","[?]","l","ll","[?]","v","sh","ss","s","h","[?]","[?]","'","'","aa","i","ii","u","uu","R","RR","eN","[?]","e","ai","oN","[?]","o","au","","[?]","[?]","AUM","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","RR","[?]","[?]","[?]","[?]","[?]","0","1","2","3","4","5","6","7","8","9","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var vj=v((sxe,yj)=>{yj.exports=["[?]","N","N","H","[?]","a","aa","i","ii","u","uu","R","L","[?]","[?]","e","ai","[?]","[?]","o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","[?]","p","ph","b","bh","m","y","r","[?]","l","ll","[?]","","sh","ss","s","h","[?]","[?]","'","'","aa","i","ii","u","uu","R","[?]","[?]","[?]","e","ai","[?]","[?]","o","au","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","+","+","[?]","[?]","[?]","[?]","rr","rh","[?]","yy","RR","LL","[?]","[?]","[?]","[?]","0","1","2","3","4","5","6","7","8","9","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","N","H","[?]","a","aa","i","ii","u","uu","[?]","[?]","[?]","e","ee","ai","[?]","o","oo","au","k","[?]","[?]","[?]","ng","c","[?]","j","[?]","ny","tt","[?]","[?]","[?]","nn","t","[?]","[?]","[?]","n","nnn","p","[?]","[?]","[?]","m","y","r","rr","l","ll","lll","v","[?]","ss","s","h","[?]","[?]","[?]","[?]","aa","i","ii","u","uu","[?]","[?]","[?]","e","ee","ai","[?]","o","oo","au","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","+","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","0","1","2","3","4","5","6","7","8","9","+10+","+100+","+1000+","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var xj=v((axe,wj)=>{wj.exports=["[?]","N","N","H","[?]","a","aa","i","ii","u","uu","R","L","[?]","e","ee","ai","[?]","o","oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","[?]","p","ph","b","bh","m","y","r","rr","l","ll","[?]","v","sh","ss","s","h","[?]","[?]","[?]","[?]","aa","i","ii","u","uu","R","RR","[?]","e","ee","ai","[?]","o","oo","au","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","+","+","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","RR","LL","[?]","[?]","[?]","[?]","0","1","2","3","4","5","6","7","8","9","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","N","H","[?]","a","aa","i","ii","u","uu","R","L","[?]","e","ee","ai","[?]","o","oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","[?]","p","ph","b","bh","m","y","r","rr","l","ll","[?]","v","sh","ss","s","h","[?]","[?]","[?]","[?]","aa","i","ii","u","uu","R","RR","[?]","e","ee","ai","[?]","o","oo","au","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","+","+","[?]","[?]","[?]","[?]","[?]","[?]","[?]","lll","[?]","RR","LL","[?]","[?]","[?]","[?]","0","1","2","3","4","5","6","7","8","9","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var Sj=v((lxe,Cj)=>{Cj.exports=["[?]","[?]","N","H","[?]","a","aa","i","ii","u","uu","R","L","[?]","e","ee","ai","[?]","o","oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","[?]","p","ph","b","bh","m","y","r","rr","l","ll","lll","v","sh","ss","s","h","[?]","[?]","[?]","[?]","aa","i","ii","u","uu","R","[?]","[?]","e","ee","ai","","o","oo","au","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","+","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","RR","LL","[?]","[?]","[?]","[?]","0","1","2","3","4","5","6","7","8","9","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","N","H","[?]","a","aa","ae","aae","i","ii","u","uu","R","RR","L","LL","e","ee","ai","o","oo","au","[?]","[?]","[?]","k","kh","g","gh","ng","nng","c","ch","j","jh","ny","jny","nyj","tt","tth","dd","ddh","nn","nndd","t","th","d","dh","n","[?]","nd","p","ph","b","bh","m","mb","y","r","[?]","l","[?]","[?]","v","sh","ss","s","h","ll","f","[?]","[?]","[?]","","[?]","[?]","[?]","[?]","aa","ae","aae","i","ii","u","[?]","uu","[?]","R","e","ee","ai","o","oo","au","L","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","RR","LL"," . ","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var Tj=v((uxe,Dj)=>{Dj.exports=["[?]","k","kh","kh","kh","kh","kh","ng","cch","ch","ch","ch","ch","y","d","t","th","th","th","n","d","t","th","th","th","n","b","p","ph","f","ph","f","ph","m","y","r","R","l","L","w","s","s","s","h","l","`","h","~","a","a","aa","am","i","ii","ue","uue","u","uu","'","[?]","[?]","[?]","[?]","Bh.","e","ae","o","ai","ai","ao","+","","","","","","","M",""," * ","0","1","2","3","4","5","6","7","8","9"," // "," /// ","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","k","kh","[?]","kh","[?]","[?]","ng","ch","[?]","s","[?]","[?]","ny","[?]","[?]","[?]","[?]","[?]","[?]","d","h","th","th","[?]","n","b","p","ph","f","ph","f","[?]","m","y","r","[?]","l","[?]","w","[?]","[?]","s","h","[?]","`","","~","a","","aa","am","i","ii","y","yy","u","uu","[?]","o","l","ny","[?]","[?]","e","ei","o","ay","ai","[?]","+","[?]","","","","","","M","[?]","[?]","0","1","2","3","4","5","6","7","8","9","[?]","[?]","hn","hm","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var Pj=v((cxe,kj)=>{kj.exports=["AUM","","","","","","",""," // "," * ","","-"," / "," / "," // "," -/ "," +/ "," X/ "," /XX/ "," /X/ ",", ","","","","","","","","","","","","0","1","2","3","4","5","6","7","8","9",".5","1.5","2.5","3.5","4.5","5.5","6.5","7.5","8.5","-.5","+","*","^","_","","~","[?]","]","[[","]]","","","k","kh","g","gh","ng","c","ch","j","[?]","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","p","ph","b","bh","m","ts","tsh","dz","dzh","w","zh","z","'","y","r","l","sh","ssh","s","h","a","kss","r","[?]","[?]","[?]","[?]","[?]","[?]","aa","i","ii","u","uu","R","RR","L","LL","e","ee","o","oo","M","H","i","ii","","","","","","","","","","","[?]","[?]","[?]","[?]","k","kh","g","gh","ng","c","ch","j","[?]","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","p","ph","b","bh","m","ts","tsh","dz","dzh","w","zh","z","'","y","r","l","sh","ss","s","h","a","kss","w","y","r","[?]","X"," :X: "," /O/ "," /o/ "," \\o\\ "," (O) ","","","","","","","","","","[?]","[?]","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var _j=v((dxe,Rj)=>{Rj.exports=["k","kh","g","gh","ng","c","ch","j","jh","ny","nny","tt","tth","dd","ddh","nn","tt","th","d","dh","n","p","ph","b","bh","m","y","r","l","w","s","h","ll","a","[?]","i","ii","u","uu","e","[?]","o","au","[?]","aa","i","ii","u","uu","e","ai","[?]","[?]","[?]","N","'",":","","[?]","[?]","[?]","[?]","[?]","[?]","0","1","2","3","4","5","6","7","8","9"," / "," // ","n*","r*","l*","e*","sh","ss","R","RR","L","LL","R","RR","L","LL","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","A","B","G","D","E","V","Z","T`","I","K","L","M","N","O","P","Zh","R","S","T","U","P`","K`","G'","Q","Sh","Ch`","C`","Z'","C","Ch","X","J","H","E","Y","W","Xh","OE","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","a","b","g","d","e","v","z","t`","i","k","l","m","n","o","p","zh","r","s","t","u","p`","k`","g'","q","sh","ch`","c`","z'","c","ch","x","j","h","e","y","w","xh","oe","f","[?]","[?]","[?]","[?]"," // ","[?]","[?]","[?]"]});var Ij=v((hxe,Ej)=>{Ej.exports=["g","gg","n","d","dd","r","m","b","bb","s","ss","","j","jj","c","k","t","p","h","ng","nn","nd","nb","dg","rn","rr","rh","rN","mb","mN","bg","bn","","bs","bsg","bst","bsb","bss","bsj","bj","bc","bt","bp","bN","bbN","sg","sn","sd","sr","sm","sb","sbg","sss","s","sj","sc","sk","st","sp","sh","","","","","Z","g","d","m","b","s","Z","","j","c","t","p","N","j","","","","","ck","ch","","","pb","pN","hh","Q","[?]","[?]","[?]","[?]","[?]","","","a","ae","ya","yae","eo","e","yeo","ye","o","wa","wae","oe","yo","u","weo","we","wi","yu","eu","yi","i","a-o","a-u","ya-o","ya-yo","eo-o","eo-u","eo-eu","yeo-o","yeo-u","o-eo","o-e","o-ye","o-o","o-u","yo-ya","yo-yae","yo-yeo","yo-o","yo-i","u-a","u-ae","u-eo-eu","u-ye","u-u","yu-a","yu-eo","yu-e","yu-yeo","yu-ye","yu-u","yu-i","eu-u","eu-eu","yi-u","i-a","i-ya","i-o","i-u","i-eu","i-U","U","U-eo","U-u","U-i","UU","[?]","[?]","[?]","[?]","[?]","g","gg","gs","n","nj","nh","d","l","lg","lm","lb","ls","lt","lp","lh","m","b","bs","s","ss","ng","j","c","k","t","p","h","gl","gsg","ng","nd","ns","nZ","nt","dg","tl","lgs","ln","ld","lth","ll","lmg","lms","lbs","lbh","rNp","lss","lZ","lk","lQ","mg","ml","mb","ms","mss","mZ","mc","mh","mN","bl","bp","ph","pN","sg","sd","sl","sb","Z","g","ss","","kh","N","Ns","NZ","pb","pN","hn","hl","hm","hb","Q","[?]","[?]","[?]","[?]","[?]"]});var Fj=v((gxe,Lj)=>{Lj.exports=["ha","hu","hi","haa","hee","he","ho","[?]","la","lu","li","laa","lee","le","lo","lwa","hha","hhu","hhi","hhaa","hhee","hhe","hho","hhwa","ma","mu","mi","maa","mee","me","mo","mwa","sza","szu","szi","szaa","szee","sze","szo","szwa","ra","ru","ri","raa","ree","re","ro","rwa","sa","su","si","saa","see","se","so","swa","sha","shu","shi","shaa","shee","she","sho","shwa","qa","qu","qi","qaa","qee","qe","qo","[?]","qwa","[?]","qwi","qwaa","qwee","qwe","[?]","[?]","qha","qhu","qhi","qhaa","qhee","qhe","qho","[?]","qhwa","[?]","qhwi","qhwaa","qhwee","qhwe","[?]","[?]","ba","bu","bi","baa","bee","be","bo","bwa","va","vu","vi","vaa","vee","ve","vo","vwa","ta","tu","ti","taa","tee","te","to","twa","ca","cu","ci","caa","cee","ce","co","cwa","xa","xu","xi","xaa","xee","xe","xo","[?]","xwa","[?]","xwi","xwaa","xwee","xwe","[?]","[?]","na","nu","ni","naa","nee","ne","no","nwa","nya","nyu","nyi","nyaa","nyee","nye","nyo","nywa","'a","'u","[?]","'aa","'ee","'e","'o","'wa","ka","ku","ki","kaa","kee","ke","ko","[?]","kwa","[?]","kwi","kwaa","kwee","kwe","[?]","[?]","kxa","kxu","kxi","kxaa","kxee","kxe","kxo","[?]","kxwa","[?]","kxwi","kxwaa","kxwee","kxwe","[?]","[?]","wa","wu","wi","waa","wee","we","wo","[?]","`a","`u","`i","`aa","`ee","`e","`o","[?]","za","zu","zi","zaa","zee","ze","zo","zwa","zha","zhu","zhi","zhaa","zhee","zhe","zho","zhwa","ya","yu","yi","yaa","yee","ye","yo","[?]","da","du","di","daa","dee","de","do","dwa","dda","ddu","ddi","ddaa","ddee","dde","ddo","ddwa"]});var jj=v((pxe,Mj)=>{Mj.exports=["ja","ju","ji","jaa","jee","je","jo","jwa","ga","gu","gi","gaa","gee","ge","go","[?]","gwa","[?]","gwi","gwaa","gwee","gwe","[?]","[?]","gga","ggu","ggi","ggaa","ggee","gge","ggo","[?]","tha","thu","thi","thaa","thee","the","tho","thwa","cha","chu","chi","chaa","chee","che","cho","chwa","pha","phu","phi","phaa","phee","phe","pho","phwa","tsa","tsu","tsi","tsaa","tsee","tse","tso","tswa","tza","tzu","tzi","tzaa","tzee","tze","tzo","[?]","fa","fu","fi","faa","fee","fe","fo","fwa","pa","pu","pi","paa","pee","pe","po","pwa","rya","mya","fya","[?]","[?]","[?]","[?]","[?]","[?]"," ",".",",",";",":",":: ","?","//","1","2","3","4","5","6","7","8","9","10+","20+","30+","40+","50+","60+","70+","80+","90+","100+","10,000+","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","a","e","i","o","u","v","ga","ka","ge","gi","go","gu","gv","ha","he","hi","ho","hu","hv","la","le","li","lo","lu","lv","ma","me","mi","mo","mu","na","hna","nah","ne","ni","no","nu","nv","qua","que","qui","quo","quu","quv","sa","s","se","si","so","su","sv","da","ta","de","te","di","ti","do","du","dv","dla","tla","tle","tli","tlo","tlu","tlv","tsa","tse","tsi","tso","tsu","tsv","wa","we","wi","wo","wu","wv","ya","ye","yi","yo","yu","yv","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var Aj=v((fxe,Oj)=>{Oj.exports=["[?]","e","aai","i","ii","o","oo","oo","ee","i","a","aa","we","we","wi","wi","wii","wii","wo","wo","woo","woo","woo","wa","wa","waa","waa","waa","ai","w","'","t","k","sh","s","n","w","n","[?]","w","c","?","l","en","in","on","an","pe","paai","pi","pii","po","poo","poo","hee","hi","pa","paa","pwe","pwe","pwi","pwi","pwii","pwii","pwo","pwo","pwoo","pwoo","pwa","pwa","pwaa","pwaa","pwaa","p","p","h","te","taai","ti","tii","to","too","too","dee","di","ta","taa","twe","twe","twi","twi","twii","twii","two","two","twoo","twoo","twa","twa","twaa","twaa","twaa","t","tte","tti","tto","tta","ke","kaai","ki","kii","ko","koo","koo","ka","kaa","kwe","kwe","kwi","kwi","kwii","kwii","kwo","kwo","kwoo","kwoo","kwa","kwa","kwaa","kwaa","kwaa","k","kw","keh","kih","koh","kah","ce","caai","ci","cii","co","coo","coo","ca","caa","cwe","cwe","cwi","cwi","cwii","cwii","cwo","cwo","cwoo","cwoo","cwa","cwa","cwaa","cwaa","cwaa","c","th","me","maai","mi","mii","mo","moo","moo","ma","maa","mwe","mwe","mwi","mwi","mwii","mwii","mwo","mwo","mwoo","mwoo","mwa","mwa","mwaa","mwaa","mwaa","m","m","mh","m","m","ne","naai","ni","nii","no","noo","noo","na","naa","nwe","nwe","nwa","nwa","nwaa","nwaa","nwaa","n","ng","nh","le","laai","li","lii","lo","loo","loo","la","laa","lwe","lwe","lwi","lwi","lwii","lwii","lwo","lwo","lwoo","lwoo","lwa","lwa","lwaa","lwaa","l","l","l","se","saai","si","sii","so","soo","soo","sa","saa","swe","swe","swi","swi","swii","swii","swo","swo","swoo","swoo"]});var Hj=v((mxe,Nj)=>{Nj.exports=["swa","swa","swaa","swaa","swaa","s","s","sw","s","sk","skw","sW","spwa","stwa","skwa","scwa","she","shi","shii","sho","shoo","sha","shaa","shwe","shwe","shwi","shwi","shwii","shwii","shwo","shwo","shwoo","shwoo","shwa","shwa","shwaa","shwaa","sh","ye","yaai","yi","yii","yo","yoo","yoo","ya","yaa","ywe","ywe","ywi","ywi","ywii","ywii","ywo","ywo","ywoo","ywoo","ywa","ywa","ywaa","ywaa","ywaa","y","y","y","yi","re","re","le","raai","ri","rii","ro","roo","lo","ra","raa","la","rwaa","rwaa","r","r","r","fe","faai","fi","fii","fo","foo","fa","faa","fwaa","fwaa","f","the","the","thi","thi","thii","thii","tho","thoo","tha","thaa","thwaa","thwaa","th","tthe","tthi","ttho","ttha","tth","tye","tyi","tyo","tya","he","hi","hii","ho","hoo","ha","haa","h","h","hk","qaai","qi","qii","qo","qoo","qa","qaa","q","tlhe","tlhi","tlho","tlha","re","ri","ro","ra","ngaai","ngi","ngii","ngo","ngoo","nga","ngaa","ng","nng","she","shi","sho","sha","the","thi","tho","tha","th","lhi","lhii","lho","lhoo","lha","lhaa","lh","the","thi","thii","tho","thoo","tha","thaa","th","b","e","i","o","a","we","wi","wo","wa","ne","ni","no","na","ke","ki","ko","ka","he","hi","ho","ha","ghu","gho","ghe","ghee","ghi","gha","ru","ro","re","ree","ri","ra","wu","wo","we","wee","wi","wa","hwu","hwo","hwe","hwee","hwi","hwa","thu","tho","the","thee","thi","tha","ttu","tto","tte","ttee","tti","tta","pu","po","pe","pee","pi","pa","p","gu","go","ge","gee","gi","ga","khu","kho","khe","khee","khi","kha","kku","kko","kke","kkee","kki"]});var qj=v((bxe,Bj)=>{Bj.exports=["kka","kk","nu","no","ne","nee","ni","na","mu","mo","me","mee","mi","ma","yu","yo","ye","yee","yi","ya","ju","ju","jo","je","jee","ji","ji","ja","jju","jjo","jje","jjee","jji","jja","lu","lo","le","lee","li","la","dlu","dlo","dle","dlee","dli","dla","lhu","lho","lhe","lhee","lhi","lha","tlhu","tlho","tlhe","tlhee","tlhi","tlha","tlu","tlo","tle","tlee","tli","tla","zu","zo","ze","zee","zi","za","z","z","dzu","dzo","dze","dzee","dzi","dza","su","so","se","see","si","sa","shu","sho","she","shee","shi","sha","sh","tsu","tso","tse","tsee","tsi","tsa","chu","cho","che","chee","chi","cha","ttsu","ttso","ttse","ttsee","ttsi","ttsa","X",".","qai","ngai","nngi","nngii","nngo","nngoo","nnga","nngaa","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"," ","b","l","f","s","n","h","d","t","c","q","m","g","ng","z","r","a","o","u","e","i","ch","th","ph","p","x","p","<",">","[?]","[?]","[?]","f","v","u","yr","y","w","th","th","a","o","ac","ae","o","o","o","oe","on","r","k","c","k","g","ng","g","g","w","h","h","h","h","n","n","n","i","e","j","g","ae","a","eo","p","z","s","s","s","c","z","t","t","d","b","b","p","p","e","m","m","m","l","l","ng","ng","d","o","ear","ior","qu","qu","qu","s","yr","yr","yr","q","x",".",":","+","17","18","19","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var Yj=v((yxe,Wj)=>{Wj.exports=["[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","k","kh","g","gh","ng","c","ch","j","jh","ny","t","tth","d","ddh","nn","t","th","d","dh","n","p","ph","b","bh","m","y","r","l","v","sh","ss","s","h","l","q","a","aa","i","ii","u","uk","uu","uuv","ry","ryy","ly","lyy","e","ai","oo","oo","au","a","aa","aa","i","ii","y","yy","u","uu","ua","oe","ya","ie","e","ae","ai","oo","au","M","H","a`","","","","r","","!","","","","","","."," // ",":","+","++"," * "," /// ","KR","'","[?]","[?]","[?]","0","1","2","3","4","5","6","7","8","9","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var Jj=v((vxe,Zj)=>{Zj.exports=[" @ "," ... ",", ",". ",": "," // ","","-",", ",". ","","","","","","[?]","0","1","2","3","4","5","6","7","8","9","[?]","[?]","[?]","[?]","[?]","[?]","a","e","i","o","u","O","U","ee","n","ng","b","p","q","g","m","l","s","sh","t","d","ch","j","y","r","w","f","k","kha","ts","z","h","zr","lh","zh","ch","-","e","i","o","u","O","U","ng","b","p","q","g","m","t","d","ch","j","ts","y","w","k","g","h","jy","ny","dz","e","i","iy","U","u","ng","k","g","h","p","sh","t","d","j","f","g","h","ts","z","r","ch","zh","i","k","r","f","zh","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","H","X","W","M"," 3 "," 333 ","a","i","k","ng","c","tt","tth","dd","nn","t","d","p","ph","ss","zh","z","a","t","zh","gh","ng","c","jh","tta","ddh","t","dh","ss","cy","zh","z","u","y","bh","'","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var $j=v((wxe,Uj)=>{Uj.exports=["A","a","B","b","B","b","B","b","C","c","D","d","D","d","D","d","D","d","D","d","E","e","E","e","E","e","E","e","E","e","F","f","G","g","H","h","H","h","H","h","H","h","H","h","I","i","I","i","K","k","K","k","K","k","L","l","L","l","L","l","L","l","M","m","M","m","M","m","N","n","N","n","N","n","N","n","O","o","O","o","O","o","O","o","P","p","P","p","R","r","R","r","R","r","R","r","S","s","S","s","S","s","S","s","S","s","T","t","T","t","T","t","T","t","U","u","U","u","U","u","U","u","U","u","V","v","V","v","W","w","W","w","W","w","W","w","W","w","X","x","X","x","Y","y","Z","z","Z","z","Z","z","h","t","w","y","a","S","[?]","[?]","[?]","[?]","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","E","e","E","e","E","e","E","e","E","e","E","e","E","e","E","e","I","i","I","i","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","U","u","U","u","U","u","U","u","U","u","U","u","U","u","Y","y","Y","y","Y","y","Y","y","[?]","[?]","[?]","[?]","[?]"]});var Gj=v((xxe,Xj)=>{Xj.exports=["a","a","a","a","a","a","a","a","A","A","A","A","A","A","A","A","e","e","e","e","e","e","[?]","[?]","E","E","E","E","E","E","[?]","[?]","e","e","e","e","e","e","e","e","E","E","E","E","E","E","E","E","i","i","i","i","i","i","i","i","I","I","I","I","I","I","I","I","o","o","o","o","o","o","[?]","[?]","O","O","O","O","O","O","[?]","[?]","u","u","u","u","u","u","u","u","[?]","U","[?]","U","[?]","U","[?]","U","o","o","o","o","o","o","o","o","O","O","O","O","O","O","O","O","a","a","e","e","e","e","i","i","o","o","u","u","o","o","[?]","[?]","a","a","a","a","a","a","a","a","A","A","A","A","A","A","A","A","e","e","e","e","e","e","e","e","E","E","E","E","E","E","E","E","o","o","o","o","o","o","o","o","O","O","O","O","O","O","O","O","a","a","a","a","a","[?]","a","a","A","A","A","A","A","'","i","'","~",'"~',"e","e","e","[?]","e","e","E","E","E","E","E","'`","''","'~","i","i","i","i","[?]","[?]","i","i","I","I","I","I","[?]","`'","`'","`~","u","u","u","u","R","R","u","u","U","U","U","U","R",'"`',`"'`,"`","[?]","[?]","o","o","o","[?]","o","o","O","O","O","O","O","'","`"]});var Kj=v((Cxe,zj)=>{zj.exports=[" "," "," "," "," "," "," "," "," "," "," "," ","","","","","-","-","-","-","--","--","||","_","'","'",",","'",'"','"',",,",'"',"+","++","*","*>",".","..","...",".",` +`,` + +`,"","","","",""," ","%0","%00","'","''","'''","`","``","```","^","<",">","*","!!","!?","-","_","-","^","***","--","/","-[","]-","[?]","?!","!?","7","PP","(]","[)","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","","","","","","","0","","","","4","5","6","7","8","9","+","-","=","(",")","n","0","1","2","3","4","5","6","7","8","9","+","-","=","(",")","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","ECU","CL","Cr","FF","L","mil","N","Pts","Rs","W","NS","D","EU","K","T","Dr","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","","","","","","","","","","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var Vj=v((Sxe,Qj)=>{Qj.exports=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"," 1/3 "," 2/3 "," 1/5 "," 2/5 "," 3/5 "," 4/5 "," 1/6 "," 5/6 "," 1/8 "," 3/8 "," 5/8 "," 7/8 "," 1/","I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII","L","C","D","M","i","ii","iii","iv","v","vi","vii","viii","ix","x","xi","xii","l","c","d","m","(D","D)","((|))",")","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","-","|","-","|","-","|","\\","/","\\","/","-","-","~","~","-","|","-","|","-","-","-","|","-","|","|","-","-","-","-","-","-","|","|","|","|","|","|","|","^","V","\\","=","V","^","-","-","|","|","-","-","|","|","=","|","=","=","|","=","|","=","=","=","=","=","=","|","=","|","=","|","\\","/","\\","/","=","=","~","~","|","|","-","|","-","|","-","-","-","|","-","|","|","|","|","|","|","|","-","\\","\\","|","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var tO=v((Dxe,eO)=>{eO.exports=["[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var nO=v((Txe,iO)=>{iO.exports=["[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var oO=v((kxe,rO)=>{rO.exports=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var aO=v((Pxe,sO)=>{sO.exports=["-","-","|","|","-","-","|","|","-","-","|","|","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","-","-","|","|","-","|","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","/","\\","X","-","|","-","|","-","|","-","|","-","|","-","|","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","-","|","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","^","^","^","^",">",">",">",">",">",">","V","V","V","V","<","<","<","<","<","<","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","#","#","#","#","#","^","^","^","O","#","#","#","#","#","#","#","#","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var uO=v((Rxe,lO)=>{lO.exports=["","","","","","","","","","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var dO=v((_xe,cO)=>{cO.exports=["[?]","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","[?]","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","","","","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var gO=v((Exe,hO)=>{hO.exports=[" ","a","1","b","'","k","2","l","@","c","i","f","/","m","s","p",'"',"e","3","h","9","o","6","r","^","d","j","g",">","n","t","q",",","*","5","<","-","u","8","v",".","%","[","$","+","x","!","&",";",":","4","\\","0","z","7","(","_","?","w","]","#","y",")","=","[d7]","[d17]","[d27]","[d127]","[d37]","[d137]","[d237]","[d1237]","[d47]","[d147]","[d247]","[d1247]","[d347]","[d1347]","[d2347]","[d12347]","[d57]","[d157]","[d257]","[d1257]","[d357]","[d1357]","[d2357]","[d12357]","[d457]","[d1457]","[d2457]","[d12457]","[d3457]","[d13457]","[d23457]","[d123457]","[d67]","[d167]","[d267]","[d1267]","[d367]","[d1367]","[d2367]","[d12367]","[d467]","[d1467]","[d2467]","[d12467]","[d3467]","[d13467]","[d23467]","[d123467]","[d567]","[d1567]","[d2567]","[d12567]","[d3567]","[d13567]","[d23567]","[d123567]","[d4567]","[d14567]","[d24567]","[d124567]","[d34567]","[d134567]","[d234567]","[d1234567]","[d8]","[d18]","[d28]","[d128]","[d38]","[d138]","[d238]","[d1238]","[d48]","[d148]","[d248]","[d1248]","[d348]","[d1348]","[d2348]","[d12348]","[d58]","[d158]","[d258]","[d1258]","[d358]","[d1358]","[d2358]","[d12358]","[d458]","[d1458]","[d2458]","[d12458]","[d3458]","[d13458]","[d23458]","[d123458]","[d68]","[d168]","[d268]","[d1268]","[d368]","[d1368]","[d2368]","[d12368]","[d468]","[d1468]","[d2468]","[d12468]","[d3468]","[d13468]","[d23468]","[d123468]","[d568]","[d1568]","[d2568]","[d12568]","[d3568]","[d13568]","[d23568]","[d123568]","[d4568]","[d14568]","[d24568]","[d124568]","[d34568]","[d134568]","[d234568]","[d1234568]","[d78]","[d178]","[d278]","[d1278]","[d378]","[d1378]","[d2378]","[d12378]","[d478]","[d1478]","[d2478]","[d12478]","[d3478]","[d13478]","[d23478]","[d123478]","[d578]","[d1578]","[d2578]","[d12578]","[d3578]","[d13578]","[d23578]","[d123578]","[d4578]","[d14578]","[d24578]","[d124578]","[d34578]","[d134578]","[d234578]","[d1234578]","[d678]","[d1678]","[d2678]","[d12678]","[d3678]","[d13678]","[d23678]","[d123678]","[d4678]","[d14678]","[d24678]","[d124678]","[d34678]","[d134678]","[d234678]","[d1234678]","[d5678]","[d15678]","[d25678]","[d125678]","[d35678]","[d135678]","[d235678]","[d1235678]","[d45678]","[d145678]","[d245678]","[d1245678]","[d345678]","[d1345678]","[d2345678]","[d12345678]"]});var fO=v((Ixe,pO)=>{pO.exports=["[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?]","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var bO=v((Lxe,mO)=>{mO.exports=["[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?]","[?]","[?]"]});var vO=v((Fxe,yO)=>{yO.exports=[" ",", ",". ",'"',"[JIS]",'"',"/","0","<","> ","<<",">> ","[","] ","{","} ","[(",")] ","@","X ","[","] ","[[","]] ","((",")) ","[[","]] ","~ ","``","''",",,","@","1","2","3","4","5","6","7","8","9","","","","","","","~","+","+","+","+","","@"," // ","+10+","+20+","+30+","[?]","[?]","[?]","","","[?]","a","a","i","i","u","u","e","e","o","o","ka","ga","ki","gi","ku","gu","ke","ge","ko","go","sa","za","si","zi","su","zu","se","ze","so","zo","ta","da","ti","di","tu","tu","du","te","de","to","do","na","ni","nu","ne","no","ha","ba","pa","hi","bi","pi","hu","bu","pu","he","be","pe","ho","bo","po","ma","mi","mu","me","mo","ya","ya","yu","yu","yo","yo","ra","ri","ru","re","ro","wa","wa","wi","we","wo","n","vu","[?]","[?]","[?]","[?]","","","","",'"','"',"[?]","[?]","a","a","i","i","u","u","e","e","o","o","ka","ga","ki","gi","ku","gu","ke","ge","ko","go","sa","za","si","zi","su","zu","se","ze","so","zo","ta","da","ti","di","tu","tu","du","te","de","to","do","na","ni","nu","ne","no","ha","ba","pa","hi","bi","pi","hu","bu","pu","he","be","pe","ho","bo","po","ma","mi","mu","me","mo","ya","ya","yu","yu","yo","yo","ra","ri","ru","re","ro","wa","wa","wi","we","wo","n","vu","ka","ke","va","vi","ve","vo","","",'"','"']});var xO=v((Mxe,wO)=>{wO.exports=["[?]","[?]","[?]","[?]","[?]","B","P","M","F","D","T","N","L","G","K","H","J","Q","X","ZH","CH","SH","R","Z","C","S","A","O","E","EH","AI","EI","AU","OU","AN","EN","ANG","ENG","ER","I","U","IU","V","NG","GN","[?]","[?]","[?]","[?]","g","gg","gs","n","nj","nh","d","dd","r","lg","lm","lb","ls","lt","lp","rh","m","b","bb","bs","s","ss","","j","jj","c","k","t","p","h","a","ae","ya","yae","eo","e","yeo","ye","o","wa","wae","oe","yo","u","weo","we","wi","yu","eu","yi","i","","nn","nd","ns","nZ","lgs","ld","lbs","lZ","lQ","mb","ms","mZ","mN","bg","","bsg","bst","bj","bt","bN","bbN","sg","sn","sd","sb","sj","Z","","N","Ns","NZ","pN","hh","Q","yo-ya","yo-yae","yo-i","yu-yeo","yu-ye","yu-i","U","U-i","[?]","","","","","","","","","","","","","","","","","BU","ZI","JI","GU","EE","ENN","OO","ONN","IR","ANN","INN","UNN","IM","NGG","AINN","AUNN","AM","OM","ONG","INNN","P","T","K","H","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var SO=v((jxe,CO)=>{CO.exports=["(g)","(n)","(d)","(r)","(m)","(b)","(s)","()","(j)","(c)","(k)","(t)","(p)","(h)","(ga)","(na)","(da)","(ra)","(ma)","(ba)","(sa)","(a)","(ja)","(ca)","(ka)","(ta)","(pa)","(ha)","(ju)","[?]","[?]","[?]","(1) ","(2) ","(3) ","(4) ","(5) ","(6) ","(7) ","(8) ","(9) ","(10) ","(Yue) ","(Huo) ","(Shui) ","(Mu) ","(Jin) ","(Tu) ","(Ri) ","(Zhu) ","(You) ","(She) ","(Ming) ","(Te) ","(Cai) ","(Zhu) ","(Lao) ","(Dai) ","(Hu) ","(Xue) ","(Jian) ","(Qi) ","(Zi) ","(Xie) ","(Ji) ","(Xiu) ","<<",">>","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","(g)","(n)","(d)","(r)","(m)","(b)","(s)","()","(j)","(c)","(k)","(t)","(p)","(h)","(ga)","(na)","(da)","(ra)","(ma)","(ba)","(sa)","(a)","(ja)","(ca)","(ka)","(ta)","(pa)","(ha)","[?]","[?]","[?]","KIS ","(1) ","(2) ","(3) ","(4) ","(5) ","(6) ","(7) ","(8) ","(9) ","(10) ","(Yue) ","(Huo) ","(Shui) ","(Mu) ","(Jin) ","(Tu) ","(Ri) ","(Zhu) ","(You) ","(She) ","(Ming) ","(Te) ","(Cai) ","(Zhu) ","(Lao) ","(Mi) ","(Nan) ","(Nu) ","(Shi) ","(You) ","(Yin) ","(Zhu) ","(Xiang) ","(Xiu) ","(Xie) ","(Zheng) ","(Shang) ","(Zhong) ","(Xia) ","(Zuo) ","(You) ","(Yi) ","(Zong) ","(Xue) ","(Jian) ","(Qi) ","(Zi) ","(Xie) ","(Ye) ","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","1M","2M","3M","4M","5M","6M","7M","8M","9M","10M","11M","12M","[?]","[?]","[?]","[?]","a","i","u","u","o","ka","ki","ku","ke","ko","sa","si","su","se","so","ta","ti","tu","te","to","na","ni","nu","ne","no","ha","hi","hu","he","ho","ma","mi","mu","me","mo","ya","yu","yo","ra","ri","ru","re","ro","wa","wi","we","wo"]});var TO=v((Oxe,DO)=>{DO.exports=["apartment","alpha","ampere","are","inning","inch","won","escudo","acre","ounce","ohm","kai-ri","carat","calorie","gallon","gamma","giga","guinea","curie","guilder","kilo","kilogram","kilometer","kilowatt","gram","gram ton","cruzeiro","krone","case","koruna","co-op","cycle","centime","shilling","centi","cent","dozen","desi","dollar","ton","nano","knot","heights","percent","parts","barrel","piaster","picul","pico","building","farad","feet","bushel","franc","hectare","peso","pfennig","hertz","pence","page","beta","point","volt","hon","pound","hall","horn","micro","mile","mach","mark","mansion","micron","milli","millibar","mega","megaton","meter","yard","yard","yuan","liter","lira","rupee","ruble","rem","roentgen","watt","0h","1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h","13h","14h","15h","16h","17h","18h","19h","20h","21h","22h","23h","24h","HPA","da","AU","bar","oV","pc","[?]","[?]","[?]","[?]","Heisei","Syouwa","Taisyou","Meiji","Inc.","pA","nA","microamp","mA","kA","kB","MB","GB","cal","kcal","pF","nF","microFarad","microgram","mg","kg","Hz","kHz","MHz","GHz","THz","microliter","ml","dl","kl","fm","nm","micrometer","mm","cm","km","mm^2","cm^2","m^2","km^2","mm^4","cm^3","m^3","km^3","m/s","m/s^2","Pa","kPa","MPa","GPa","rad","rad/s","rad/s^2","ps","ns","microsecond","ms","pV","nV","microvolt","mV","kV","MV","pW","nW","microwatt","mW","kW","MW","kOhm","MOhm","a.m.","Bq","cc","cd","C/kg","Co.","dB","Gy","ha","HP","in","K.K.","KM","kt","lm","ln","log","lx","mb","mil","mol","pH","p.m.","PPM","PR","sr","Sv","Wb","[?]","[?]","1d","2d","3d","4d","5d","6d","7d","8d","9d","10d","11d","12d","13d","14d","15d","16d","17d","18d","19d","20d","21d","22d","23d","24d","25d","26d","27d","28d","29d","30d","31d"]});var PO=v((Axe,kO)=>{kO.exports=["[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?] ","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var _O=v((Nxe,RO)=>{RO.exports=["Yi ","Ding ","Kao ","Qi ","Shang ","Xia ","[?] ","Mo ","Zhang ","San ","Shang ","Xia ","Ji ","Bu ","Yu ","Mian ","Gai ","Chou ","Chou ","Zhuan ","Qie ","Pi ","Shi ","Shi ","Qiu ","Bing ","Ye ","Cong ","Dong ","Si ","Cheng ","Diu ","Qiu ","Liang ","Diu ","You ","Liang ","Yan ","Bing ","Sang ","Gun ","Jiu ","Ge ","Ya ","Qiang ","Zhong ","Ji ","Jie ","Feng ","Guan ","Chuan ","Chan ","Lin ","Zhuo ","Zhu ","Ha ","Wan ","Dan ","Wei ","Zhu ","Jing ","Li ","Ju ","Pie ","Fu ","Yi ","Yi ","Nai ","Shime ","Jiu ","Jiu ","Zhe ","Yao ","Yi ","[?] ","Zhi ","Wu ","Zha ","Hu ","Fa ","Le ","Zhong ","Ping ","Pang ","Qiao ","Hu ","Guai ","Cheng ","Cheng ","Yi ","Yin ","[?] ","Mie ","Jiu ","Qi ","Ye ","Xi ","Xiang ","Gai ","Diu ","Hal ","[?] ","Shu ","Twul ","Shi ","Ji ","Nang ","Jia ","Kel ","Shi ","[?] ","Ol ","Mai ","Luan ","Cal ","Ru ","Xue ","Yan ","Fu ","Sha ","Na ","Gan ","Sol ","El ","Cwul ","[?] ","Gan ","Chi ","Gui ","Gan ","Luan ","Lin ","Yi ","Jue ","Liao ","Ma ","Yu ","Zheng ","Shi ","Shi ","Er ","Chu ","Yu ","Yu ","Yu ","Yun ","Hu ","Qi ","Wu ","Jing ","Si ","Sui ","Gen ","Gen ","Ya ","Xie ","Ya ","Qi ","Ya ","Ji ","Tou ","Wang ","Kang ","Ta ","Jiao ","Hai ","Yi ","Chan ","Heng ","Mu ","[?] ","Xiang ","Jing ","Ting ","Liang ","Xiang ","Jing ","Ye ","Qin ","Bo ","You ","Xie ","Dan ","Lian ","Duo ","Wei ","Ren ","Ren ","Ji ","La ","Wang ","Yi ","Shi ","Ren ","Le ","Ding ","Ze ","Jin ","Pu ","Chou ","Ba ","Zhang ","Jin ","Jie ","Bing ","Reng ","Cong ","Fo ","San ","Lun ","Sya ","Cang ","Zi ","Shi ","Ta ","Zhang ","Fu ","Xian ","Xian ","Tuo ","Hong ","Tong ","Ren ","Qian ","Gan ","Yi ","Di ","Dai ","Ling ","Yi ","Chao ","Chang ","Sa ","[?] ","Yi ","Mu ","Men ","Ren ","Jia ","Chao ","Yang ","Qian ","Zhong ","Pi ","Wan ","Wu ","Jian ","Jie ","Yao ","Feng ","Cang ","Ren ","Wang ","Fen ","Di ","Fang "]});var IO=v((Hxe,EO)=>{EO.exports=["Zhong ","Qi ","Pei ","Yu ","Diao ","Dun ","Wen ","Yi ","Xin ","Kang ","Yi ","Ji ","Ai ","Wu ","Ji ","Fu ","Fa ","Xiu ","Jin ","Bei ","Dan ","Fu ","Tang ","Zhong ","You ","Huo ","Hui ","Yu ","Cui ","Chuan ","San ","Wei ","Chuan ","Che ","Ya ","Xian ","Shang ","Chang ","Lun ","Cang ","Xun ","Xin ","Wei ","Zhu ","[?] ","Xuan ","Nu ","Bo ","Gu ","Ni ","Ni ","Xie ","Ban ","Xu ","Ling ","Zhou ","Shen ","Qu ","Si ","Beng ","Si ","Jia ","Pi ","Yi ","Si ","Ai ","Zheng ","Dian ","Han ","Mai ","Dan ","Zhu ","Bu ","Qu ","Bi ","Shao ","Ci ","Wei ","Di ","Zhu ","Zuo ","You ","Yang ","Ti ","Zhan ","He ","Bi ","Tuo ","She ","Yu ","Yi ","Fo ","Zuo ","Kou ","Ning ","Tong ","Ni ","Xuan ","Qu ","Yong ","Wa ","Qian ","[?] ","Ka ","[?] ","Pei ","Huai ","He ","Lao ","Xiang ","Ge ","Yang ","Bai ","Fa ","Ming ","Jia ","Er ","Bing ","Ji ","Hen ","Huo ","Gui ","Quan ","Tiao ","Jiao ","Ci ","Yi ","Shi ","Xing ","Shen ","Tuo ","Kan ","Zhi ","Gai ","Lai ","Yi ","Chi ","Kua ","Guang ","Li ","Yin ","Shi ","Mi ","Zhu ","Xu ","You ","An ","Lu ","Mou ","Er ","Lun ","Tong ","Cha ","Chi ","Xun ","Gong ","Zhou ","Yi ","Ru ","Jian ","Xia ","Jia ","Zai ","Lu ","Ko ","Jiao ","Zhen ","Ce ","Qiao ","Kuai ","Chai ","Ning ","Nong ","Jin ","Wu ","Hou ","Jiong ","Cheng ","Zhen ","Zuo ","Chou ","Qin ","Lu ","Ju ","Shu ","Ting ","Shen ","Tuo ","Bo ","Nan ","Hao ","Bian ","Tui ","Yu ","Xi ","Cu ","E ","Qiu ","Xu ","Kuang ","Ku ","Wu ","Jun ","Yi ","Fu ","Lang ","Zu ","Qiao ","Li ","Yong ","Hun ","Jing ","Xian ","San ","Pai ","Su ","Fu ","Xi ","Li ","Fu ","Ping ","Bao ","Yu ","Si ","Xia ","Xin ","Xiu ","Yu ","Ti ","Che ","Chou ","[?] ","Yan ","Lia ","Li ","Lai ","[?] ","Jian ","Xiu ","Fu ","He ","Ju ","Xiao ","Pai ","Jian ","Biao ","Chu ","Fei ","Feng ","Ya ","An ","Bei ","Yu ","Xin ","Bi ","Jian "]});var FO=v((Bxe,LO)=>{LO.exports=["Chang ","Chi ","Bing ","Zan ","Yao ","Cui ","Lia ","Wan ","Lai ","Cang ","Zong ","Ge ","Guan ","Bei ","Tian ","Shu ","Shu ","Men ","Dao ","Tan ","Jue ","Chui ","Xing ","Peng ","Tang ","Hou ","Yi ","Qi ","Ti ","Gan ","Jing ","Jie ","Sui ","Chang ","Jie ","Fang ","Zhi ","Kong ","Juan ","Zong ","Ju ","Qian ","Ni ","Lun ","Zhuo ","Wei ","Luo ","Song ","Leng ","Hun ","Dong ","Zi ","Ben ","Wu ","Ju ","Nai ","Cai ","Jian ","Zhai ","Ye ","Zhi ","Sha ","Qing ","[?] ","Ying ","Cheng ","Jian ","Yan ","Nuan ","Zhong ","Chun ","Jia ","Jie ","Wei ","Yu ","Bing ","Ruo ","Ti ","Wei ","Pian ","Yan ","Feng ","Tang ","Wo ","E ","Xie ","Che ","Sheng ","Kan ","Di ","Zuo ","Cha ","Ting ","Bei ","Ye ","Huang ","Yao ","Zhan ","Chou ","Yan ","You ","Jian ","Xu ","Zha ","Ci ","Fu ","Bi ","Zhi ","Zong ","Mian ","Ji ","Yi ","Xie ","Xun ","Si ","Duan ","Ce ","Zhen ","Ou ","Tou ","Tou ","Bei ","Za ","Lu ","Jie ","Wei ","Fen ","Chang ","Gui ","Sou ","Zhi ","Su ","Xia ","Fu ","Yuan ","Rong ","Li ","Ru ","Yun ","Gou ","Ma ","Bang ","Dian ","Tang ","Hao ","Jie ","Xi ","Shan ","Qian ","Jue ","Cang ","Chu ","San ","Bei ","Xiao ","Yong ","Yao ","Tan ","Suo ","Yang ","Fa ","Bing ","Jia ","Dai ","Zai ","Tang ","[?] ","Bin ","Chu ","Nuo ","Can ","Lei ","Cui ","Yong ","Zao ","Zong ","Peng ","Song ","Ao ","Chuan ","Yu ","Zhai ","Cou ","Shang ","Qiang ","Jing ","Chi ","Sha ","Han ","Zhang ","Qing ","Yan ","Di ","Xi ","Lu ","Bei ","Piao ","Jin ","Lian ","Lu ","Man ","Qian ","Xian ","Tan ","Ying ","Dong ","Zhuan ","Xiang ","Shan ","Qiao ","Jiong ","Tui ","Zun ","Pu ","Xi ","Lao ","Chang ","Guang ","Liao ","Qi ","Deng ","Chan ","Wei ","Ji ","Fan ","Hui ","Chuan ","Jian ","Dan ","Jiao ","Jiu ","Seng ","Fen ","Xian ","Jue ","E ","Jiao ","Jian ","Tong ","Lin ","Bo ","Gu ","[?] ","Su ","Xian ","Jiang ","Min ","Ye ","Jin ","Jia ","Qiao ","Pi ","Feng ","Zhou ","Ai ","Sai "]});var jO=v((qxe,MO)=>{MO.exports=["Yi ","Jun ","Nong ","Chan ","Yi ","Dang ","Jing ","Xuan ","Kuai ","Jian ","Chu ","Dan ","Jiao ","Sha ","Zai ","[?] ","Bin ","An ","Ru ","Tai ","Chou ","Chai ","Lan ","Ni ","Jin ","Qian ","Meng ","Wu ","Ning ","Qiong ","Ni ","Chang ","Lie ","Lei ","Lu ","Kuang ","Bao ","Du ","Biao ","Zan ","Zhi ","Si ","You ","Hao ","Chen ","Chen ","Li ","Teng ","Wei ","Long ","Chu ","Chan ","Rang ","Shu ","Hui ","Li ","Luo ","Zan ","Nuo ","Tang ","Yan ","Lei ","Nang ","Er ","Wu ","Yun ","Zan ","Yuan ","Xiong ","Chong ","Zhao ","Xiong ","Xian ","Guang ","Dui ","Ke ","Dui ","Mian ","Tu ","Chang ","Er ","Dui ","Er ","Xin ","Tu ","Si ","Yan ","Yan ","Shi ","Shi ","Dang ","Qian ","Dou ","Fen ","Mao ","Shen ","Dou ","Bai ","Jing ","Li ","Huang ","Ru ","Wang ","Nei ","Quan ","Liang ","Yu ","Ba ","Gong ","Liu ","Xi ","[?] ","Lan ","Gong ","Tian ","Guan ","Xing ","Bing ","Qi ","Ju ","Dian ","Zi ","Ppwun ","Yang ","Jian ","Shou ","Ji ","Yi ","Ji ","Chan ","Jiong ","Mao ","Ran ","Nei ","Yuan ","Mao ","Gang ","Ran ","Ce ","Jiong ","Ce ","Zai ","Gua ","Jiong ","Mao ","Zhou ","Mou ","Gou ","Xu ","Mian ","Mi ","Rong ","Yin ","Xie ","Kan ","Jun ","Nong ","Yi ","Mi ","Shi ","Guan ","Meng ","Zhong ","Ju ","Yuan ","Ming ","Kou ","Lam ","Fu ","Xie ","Mi ","Bing ","Dong ","Tai ","Gang ","Feng ","Bing ","Hu ","Chong ","Jue ","Hu ","Kuang ","Ye ","Leng ","Pan ","Fu ","Min ","Dong ","Xian ","Lie ","Xia ","Jian ","Jing ","Shu ","Mei ","Tu ","Qi ","Gu ","Zhun ","Song ","Jing ","Liang ","Qing ","Diao ","Ling ","Dong ","Gan ","Jian ","Yin ","Cou ","Yi ","Li ","Cang ","Ming ","Zhuen ","Cui ","Si ","Duo ","Jin ","Lin ","Lin ","Ning ","Xi ","Du ","Ji ","Fan ","Fan ","Fan ","Feng ","Ju ","Chu ","Tako ","Feng ","Mok ","Ci ","Fu ","Feng ","Ping ","Feng ","Kai ","Huang ","Kai ","Gan ","Deng ","Ping ","Qu ","Xiong ","Kuai ","Tu ","Ao ","Chu ","Ji ","Dang ","Han ","Han ","Zao "]});var AO=v((Wxe,OO)=>{OO.exports=["Dao ","Diao ","Dao ","Ren ","Ren ","Chuang ","Fen ","Qie ","Yi ","Ji ","Kan ","Qian ","Cun ","Chu ","Wen ","Ji ","Dan ","Xing ","Hua ","Wan ","Jue ","Li ","Yue ","Lie ","Liu ","Ze ","Gang ","Chuang ","Fu ","Chu ","Qu ","Ju ","Shan ","Min ","Ling ","Zhong ","Pan ","Bie ","Jie ","Jie ","Bao ","Li ","Shan ","Bie ","Chan ","Jing ","Gua ","Gen ","Dao ","Chuang ","Kui ","Ku ","Duo ","Er ","Zhi ","Shua ","Quan ","Cha ","Ci ","Ke ","Jie ","Gui ","Ci ","Gui ","Kai ","Duo ","Ji ","Ti ","Jing ","Lou ","Gen ","Ze ","Yuan ","Cuo ","Xue ","Ke ","La ","Qian ","Cha ","Chuang ","Gua ","Jian ","Cuo ","Li ","Ti ","Fei ","Pou ","Chan ","Qi ","Chuang ","Zi ","Gang ","Wan ","Bo ","Ji ","Duo ","Qing ","Yan ","Zhuo ","Jian ","Ji ","Bo ","Yan ","Ju ","Huo ","Sheng ","Jian ","Duo ","Duan ","Wu ","Gua ","Fu ","Sheng ","Jian ","Ge ","Zha ","Kai ","Chuang ","Juan ","Chan ","Tuan ","Lu ","Li ","Fou ","Shan ","Piao ","Kou ","Jiao ","Gua ","Qiao ","Jue ","Hua ","Zha ","Zhuo ","Lian ","Ju ","Pi ","Liu ","Gui ","Jiao ","Gui ","Jian ","Jian ","Tang ","Huo ","Ji ","Jian ","Yi ","Jian ","Zhi ","Chan ","Cuan ","Mo ","Li ","Zhu ","Li ","Ya ","Quan ","Ban ","Gong ","Jia ","Wu ","Mai ","Lie ","Jin ","Keng ","Xie ","Zhi ","Dong ","Zhu ","Nu ","Jie ","Qu ","Shao ","Yi ","Zhu ","Miao ","Li ","Jing ","Lao ","Lao ","Juan ","Kou ","Yang ","Wa ","Xiao ","Mou ","Kuang ","Jie ","Lie ","He ","Shi ","Ke ","Jing ","Hao ","Bo ","Min ","Chi ","Lang ","Yong ","Yong ","Mian ","Ke ","Xun ","Juan ","Qing ","Lu ","Pou ","Meng ","Lai ","Le ","Kai ","Mian ","Dong ","Xu ","Xu ","Kan ","Wu ","Yi ","Xun ","Weng ","Sheng ","Lao ","Mu ","Lu ","Piao ","Shi ","Ji ","Qin ","Qiang ","Jiao ","Quan ","Yang ","Yi ","Jue ","Fan ","Juan ","Tong ","Ju ","Dan ","Xie ","Mai ","Xun ","Xun ","Lu ","Li ","Che ","Rang ","Quan ","Bao ","Shao ","Yun ","Jiu ","Bao ","Gou ","Wu "]});var HO=v((Yxe,NO)=>{NO.exports=["Yun ","Mwun ","Nay ","Gai ","Gai ","Bao ","Cong ","[?] ","Xiong ","Peng ","Ju ","Tao ","Ge ","Pu ","An ","Pao ","Fu ","Gong ","Da ","Jiu ","Qiong ","Bi ","Hua ","Bei ","Nao ","Chi ","Fang ","Jiu ","Yi ","Za ","Jiang ","Kang ","Jiang ","Kuang ","Hu ","Xia ","Qu ","Bian ","Gui ","Qie ","Zang ","Kuang ","Fei ","Hu ","Tou ","Gui ","Gui ","Hui ","Dan ","Gui ","Lian ","Lian ","Suan ","Du ","Jiu ","Qu ","Xi ","Pi ","Qu ","Yi ","Qia ","Yan ","Bian ","Ni ","Qu ","Shi ","Xin ","Qian ","Nian ","Sa ","Zu ","Sheng ","Wu ","Hui ","Ban ","Shi ","Xi ","Wan ","Hua ","Xie ","Wan ","Bei ","Zu ","Zhuo ","Xie ","Dan ","Mai ","Nan ","Dan ","Ji ","Bo ","Shuai ","Bu ","Kuang ","Bian ","Bu ","Zhan ","Qia ","Lu ","You ","Lu ","Xi ","Gua ","Wo ","Xie ","Jie ","Jie ","Wei ","Ang ","Qiong ","Zhi ","Mao ","Yin ","Wei ","Shao ","Ji ","Que ","Luan ","Shi ","Juan ","Xie ","Xu ","Jin ","Que ","Wu ","Ji ","E ","Qing ","Xi ","[?] ","Han ","Zhan ","E ","Ting ","Li ","Zhe ","Han ","Li ","Ya ","Ya ","Yan ","She ","Zhi ","Zha ","Pang ","[?] ","He ","Ya ","Zhi ","Ce ","Pang ","Ti ","Li ","She ","Hou ","Ting ","Zui ","Cuo ","Fei ","Yuan ","Ce ","Yuan ","Xiang ","Yan ","Li ","Jue ","Sha ","Dian ","Chu ","Jiu ","Qin ","Ao ","Gui ","Yan ","Si ","Li ","Chang ","Lan ","Li ","Yan ","Yan ","Yuan ","Si ","Gong ","Lin ","Qiu ","Qu ","Qu ","Uk ","Lei ","Du ","Xian ","Zhuan ","San ","Can ","Can ","Can ","Can ","Ai ","Dai ","You ","Cha ","Ji ","You ","Shuang ","Fan ","Shou ","Guai ","Ba ","Fa ","Ruo ","Shi ","Shu ","Zhuo ","Qu ","Shou ","Bian ","Xu ","Jia ","Pan ","Sou ","Gao ","Wei ","Sou ","Die ","Rui ","Cong ","Kou ","Gu ","Ju ","Ling ","Gua ","Tao ","Kou ","Zhi ","Jiao ","Zhao ","Ba ","Ding ","Ke ","Tai ","Chi ","Shi ","You ","Qiu ","Po ","Xie ","Hao ","Si ","Tan ","Chi ","Le ","Diao ","Ji ","[?] ","Hong "]});var qO=v((Zxe,BO)=>{BO.exports=["Mie ","Xu ","Mang ","Chi ","Ge ","Xuan ","Yao ","Zi ","He ","Ji ","Diao ","Cun ","Tong ","Ming ","Hou ","Li ","Tu ","Xiang ","Zha ","Xia ","Ye ","Lu ","A ","Ma ","Ou ","Xue ","Yi ","Jun ","Chou ","Lin ","Tun ","Yin ","Fei ","Bi ","Qin ","Qin ","Jie ","Bu ","Fou ","Ba ","Dun ","Fen ","E ","Han ","Ting ","Hang ","Shun ","Qi ","Hong ","Zhi ","Shen ","Wu ","Wu ","Chao ","Ne ","Xue ","Xi ","Chui ","Dou ","Wen ","Hou ","Ou ","Wu ","Gao ","Ya ","Jun ","Lu ","E ","Ge ","Mei ","Ai ","Qi ","Cheng ","Wu ","Gao ","Fu ","Jiao ","Hong ","Chi ","Sheng ","Ne ","Tun ","Fu ","Yi ","Dai ","Ou ","Li ","Bai ","Yuan ","Kuai ","[?] ","Qiang ","Wu ","E ","Shi ","Quan ","Pen ","Wen ","Ni ","M ","Ling ","Ran ","You ","Di ","Zhou ","Shi ","Zhou ","Tie ","Xi ","Yi ","Qi ","Ping ","Zi ","Gu ","Zi ","Wei ","Xu ","He ","Nao ","Xia ","Pei ","Yi ","Xiao ","Shen ","Hu ","Ming ","Da ","Qu ","Ju ","Gem ","Za ","Tuo ","Duo ","Pou ","Pao ","Bi ","Fu ","Yang ","He ","Zha ","He ","Hai ","Jiu ","Yong ","Fu ","Que ","Zhou ","Wa ","Ka ","Gu ","Ka ","Zuo ","Bu ","Long ","Dong ","Ning ","Tha ","Si ","Xian ","Huo ","Qi ","Er ","E ","Guang ","Zha ","Xi ","Yi ","Lie ","Zi ","Mie ","Mi ","Zhi ","Yao ","Ji ","Zhou ","Ge ","Shuai ","Zan ","Xiao ","Ke ","Hui ","Kua ","Huai ","Tao ","Xian ","E ","Xuan ","Xiu ","Wai ","Yan ","Lao ","Yi ","Ai ","Pin ","Shen ","Tong ","Hong ","Xiong ","Chi ","Wa ","Ha ","Zai ","Yu ","Di ","Pai ","Xiang ","Ai ","Hen ","Kuang ","Ya ","Da ","Xiao ","Bi ","Yue ","[?] ","Hua ","Sasou ","Kuai ","Duo ","[?] ","Ji ","Nong ","Mou ","Yo ","Hao ","Yuan ","Long ","Pou ","Mang ","Ge ","E ","Chi ","Shao ","Li ","Na ","Zu ","He ","Ku ","Xiao ","Xian ","Lao ","Bo ","Zhe ","Zha ","Liang ","Ba ","Mie ","Le ","Sui ","Fou ","Bu ","Han ","Heng ","Geng ","Shuo ","Ge "]});var YO=v((Jxe,WO)=>{WO.exports=["You ","Yan ","Gu ","Gu ","Bai ","Han ","Suo ","Chun ","Yi ","Ai ","Jia ","Tu ","Xian ","Huan ","Li ","Xi ","Tang ","Zuo ","Qiu ","Che ","Wu ","Zao ","Ya ","Dou ","Qi ","Di ","Qin ","Ma ","Mal ","Hong ","Dou ","Kes ","Lao ","Liang ","Suo ","Zao ","Huan ","Lang ","Sha ","Ji ","Zuo ","Wo ","Feng ","Yin ","Hu ","Qi ","Shou ","Wei ","Shua ","Chang ","Er ","Li ","Qiang ","An ","Jie ","Yo ","Nian ","Yu ","Tian ","Lai ","Sha ","Xi ","Tuo ","Hu ","Ai ","Zhou ","Nou ","Ken ","Zhuo ","Zhuo ","Shang ","Di ","Heng ","Lan ","A ","Xiao ","Xiang ","Tun ","Wu ","Wen ","Cui ","Sha ","Hu ","Qi ","Qi ","Tao ","Dan ","Dan ","Ye ","Zi ","Bi ","Cui ","Chuo ","He ","Ya ","Qi ","Zhe ","Pei ","Liang ","Xian ","Pi ","Sha ","La ","Ze ","Qing ","Gua ","Pa ","Zhe ","Se ","Zhuan ","Nie ","Guo ","Luo ","Yan ","Di ","Quan ","Tan ","Bo ","Ding ","Lang ","Xiao ","[?] ","Tang ","Chi ","Ti ","An ","Jiu ","Dan ","Ke ","Yong ","Wei ","Nan ","Shan ","Yu ","Zhe ","La ","Jie ","Hou ","Han ","Die ","Zhou ","Chai ","Wai ","Re ","Yu ","Yin ","Zan ","Yao ","Wo ","Mian ","Hu ","Yun ","Chuan ","Hui ","Huan ","Huan ","Xi ","He ","Ji ","Kui ","Zhong ","Wei ","Sha ","Xu ","Huang ","Du ","Nie ","Xuan ","Liang ","Yu ","Sang ","Chi ","Qiao ","Yan ","Dan ","Pen ","Can ","Li ","Yo ","Zha ","Wei ","Miao ","Ying ","Pen ","Phos ","Kui ","Xi ","Yu ","Jie ","Lou ","Ku ","Sao ","Huo ","Ti ","Yao ","He ","A ","Xiu ","Qiang ","Se ","Yong ","Su ","Hong ","Xie ","Yi ","Suo ","Ma ","Cha ","Hai ","Ke ","Ta ","Sang ","Tian ","Ru ","Sou ","Wa ","Ji ","Pang ","Wu ","Xian ","Shi ","Ge ","Zi ","Jie ","Luo ","Weng ","Wa ","Si ","Chi ","Hao ","Suo ","Jia ","Hai ","Suo ","Qin ","Nie ","He ","Cis ","Sai ","Ng ","Ge ","Na ","Dia ","Ai ","[?] ","Tong ","Bi ","Ao ","Ao ","Lian ","Cui ","Zhe ","Mo ","Sou ","Sou ","Tan "]});var JO=v((Uxe,ZO)=>{ZO.exports=["Di ","Qi ","Jiao ","Chong ","Jiao ","Kai ","Tan ","San ","Cao ","Jia ","Ai ","Xiao ","Piao ","Lou ","Ga ","Gu ","Xiao ","Hu ","Hui ","Guo ","Ou ","Xian ","Ze ","Chang ","Xu ","Po ","De ","Ma ","Ma ","Hu ","Lei ","Du ","Ga ","Tang ","Ye ","Beng ","Ying ","Saai ","Jiao ","Mi ","Xiao ","Hua ","Mai ","Ran ","Zuo ","Peng ","Lao ","Xiao ","Ji ","Zhu ","Chao ","Kui ","Zui ","Xiao ","Si ","Hao ","Fu ","Liao ","Qiao ","Xi ","Xiu ","Tan ","Tan ","Mo ","Xun ","E ","Zun ","Fan ","Chi ","Hui ","Zan ","Chuang ","Cu ","Dan ","Yu ","Tun ","Cheng ","Jiao ","Ye ","Xi ","Qi ","Hao ","Lian ","Xu ","Deng ","Hui ","Yin ","Pu ","Jue ","Qin ","Xun ","Nie ","Lu ","Si ","Yan ","Ying ","Da ","Dan ","Yu ","Zhou ","Jin ","Nong ","Yue ","Hui ","Qi ","E ","Zao ","Yi ","Shi ","Jiao ","Yuan ","Ai ","Yong ","Jue ","Kuai ","Yu ","Pen ","Dao ","Ge ","Xin ","Dun ","Dang ","Sin ","Sai ","Pi ","Pi ","Yin ","Zui ","Ning ","Di ","Lan ","Ta ","Huo ","Ru ","Hao ","Xia ","Ya ","Duo ","Xi ","Chou ","Ji ","Jin ","Hao ","Ti ","Chang ","[?] ","[?] ","Ca ","Ti ","Lu ","Hui ","Bo ","You ","Nie ","Yin ","Hu ","Mo ","Huang ","Zhe ","Li ","Liu ","Haai ","Nang ","Xiao ","Mo ","Yan ","Li ","Lu ","Long ","Fu ","Dan ","Chen ","Pin ","Pi ","Xiang ","Huo ","Mo ","Xi ","Duo ","Ku ","Yan ","Chan ","Ying ","Rang ","Dian ","La ","Ta ","Xiao ","Jiao ","Chuo ","Huan ","Huo ","Zhuan ","Nie ","Xiao ","Ca ","Li ","Chan ","Chai ","Li ","Yi ","Luo ","Nang ","Zan ","Su ","Xi ","So ","Jian ","Za ","Zhu ","Lan ","Nie ","Nang ","[?] ","[?] ","Wei ","Hui ","Yin ","Qiu ","Si ","Nin ","Jian ","Hui ","Xin ","Yin ","Nan ","Tuan ","Tuan ","Dun ","Kang ","Yuan ","Jiong ","Pian ","Yun ","Cong ","Hu ","Hui ","Yuan ","You ","Guo ","Kun ","Cong ","Wei ","Tu ","Wei ","Lun ","Guo ","Qun ","Ri ","Ling ","Gu ","Guo ","Tai ","Guo ","Tu ","You "]});var $O=v(($xe,UO)=>{UO.exports=["Guo ","Yin ","Hun ","Pu ","Yu ","Han ","Yuan ","Lun ","Quan ","Yu ","Qing ","Guo ","Chuan ","Wei ","Yuan ","Quan ","Ku ","Fu ","Yuan ","Yuan ","E ","Tu ","Tu ","Tu ","Tuan ","Lue ","Hui ","Yi ","Yuan ","Luan ","Luan ","Tu ","Ya ","Tu ","Ting ","Sheng ","Pu ","Lu ","Iri ","Ya ","Zai ","Wei ","Ge ","Yu ","Wu ","Gui ","Pi ","Yi ","Di ","Qian ","Qian ","Zhen ","Zhuo ","Dang ","Qia ","Akutsu ","Yama ","Kuang ","Chang ","Qi ","Nie ","Mo ","Ji ","Jia ","Zhi ","Zhi ","Ban ","Xun ","Tou ","Qin ","Fen ","Jun ","Keng ","Tun ","Fang ","Fen ","Ben ","Tan ","Kan ","Pi ","Zuo ","Keng ","Bi ","Xing ","Di ","Jing ","Ji ","Kuai ","Di ","Jing ","Jian ","Tan ","Li ","Ba ","Wu ","Fen ","Zhui ","Po ","Pan ","Tang ","Kun ","Qu ","Tan ","Zhi ","Tuo ","Gan ","Ping ","Dian ","Gua ","Ni ","Tai ","Pi ","Jiong ","Yang ","Fo ","Ao ","Liu ","Qiu ","Mu ","Ke ","Gou ","Xue ","Ba ","Chi ","Che ","Ling ","Zhu ","Fu ","Hu ","Zhi ","Chui ","La ","Long ","Long ","Lu ","Ao ","Tay ","Pao ","[?] ","Xing ","Dong ","Ji ","Ke ","Lu ","Ci ","Chi ","Lei ","Gai ","Yin ","Hou ","Dui ","Zhao ","Fu ","Guang ","Yao ","Duo ","Duo ","Gui ","Cha ","Yang ","Yin ","Fa ","Gou ","Yuan ","Die ","Xie ","Ken ","Jiong ","Shou ","E ","Ha ","Dian ","Hong ","Wu ","Kua ","[?] ","Tao ","Dang ","Kai ","Gake ","Nao ","An ","Xing ","Xian ","Huan ","Bang ","Pei ","Ba ","Yi ","Yin ","Han ","Xu ","Chui ","Cen ","Geng ","Ai ","Peng ","Fang ","Que ","Yong ","Xun ","Jia ","Di ","Mai ","Lang ","Xuan ","Cheng ","Yan ","Jin ","Zhe ","Lei ","Lie ","Bu ","Cheng ","Gomi ","Bu ","Shi ","Xun ","Guo ","Jiong ","Ye ","Nian ","Di ","Yu ","Bu ","Ya ","Juan ","Sui ","Pi ","Cheng ","Wan ","Ju ","Lun ","Zheng ","Kong ","Chong ","Dong ","Dai ","Tan ","An ","Cai ","Shu ","Beng ","Kan ","Zhi ","Duo ","Yi ","Zhi ","Yi ","Pei ","Ji ","Zhun ","Qi ","Sao ","Ju ","Ni "]});var GO=v((Xxe,XO)=>{XO.exports=["Ku ","Ke ","Tang ","Kun ","Ni ","Jian ","Dui ","Jin ","Gang ","Yu ","E ","Peng ","Gu ","Tu ","Leng ","[?] ","Ya ","Qian ","[?] ","An ","[?] ","Duo ","Nao ","Tu ","Cheng ","Yin ","Hun ","Bi ","Lian ","Guo ","Die ","Zhuan ","Hou ","Bao ","Bao ","Yu ","Di ","Mao ","Jie ","Ruan ","E ","Geng ","Kan ","Zong ","Yu ","Huang ","E ","Yao ","Yan ","Bao ","Ji ","Mei ","Chang ","Du ","Tuo ","Yin ","Feng ","Zhong ","Jie ","Zhen ","Feng ","Gang ","Chuan ","Jian ","Pyeng ","Toride ","Xiang ","Huang ","Leng ","Duan ","[?] ","Xuan ","Ji ","Ji ","Kuai ","Ying ","Ta ","Cheng ","Yong ","Kai ","Su ","Su ","Shi ","Mi ","Ta ","Weng ","Cheng ","Tu ","Tang ","Que ","Zhong ","Li ","Peng ","Bang ","Sai ","Zang ","Dui ","Tian ","Wu ","Cheng ","Xun ","Ge ","Zhen ","Ai ","Gong ","Yan ","Kan ","Tian ","Yuan ","Wen ","Xie ","Liu ","Ama ","Lang ","Chang ","Peng ","Beng ","Chen ","Cu ","Lu ","Ou ","Qian ","Mei ","Mo ","Zhuan ","Shuang ","Shu ","Lou ","Chi ","Man ","Biao ","Jing ","Qi ","Shu ","Di ","Zhang ","Kan ","Yong ","Dian ","Chen ","Zhi ","Xi ","Guo ","Qiang ","Jin ","Di ","Shang ","Mu ","Cui ","Yan ","Ta ","Zeng ","Qi ","Qiang ","Liang ","[?] ","Zhui ","Qiao ","Zeng ","Xu ","Shan ","Shan ","Ba ","Pu ","Kuai ","Dong ","Fan ","Que ","Mo ","Dun ","Dun ","Dun ","Di ","Sheng ","Duo ","Duo ","Tan ","Deng ","Wu ","Fen ","Huang ","Tan ","Da ","Ye ","Sho ","Mama ","Yu ","Qiang ","Ji ","Qiao ","Ken ","Yi ","Pi ","Bi ","Dian ","Jiang ","Ye ","Yong ","Bo ","Tan ","Lan ","Ju ","Huai ","Dang ","Rang ","Qian ","Xun ","Lan ","Xi ","He ","Ai ","Ya ","Dao ","Hao ","Ruan ","Mama ","Lei ","Kuang ","Lu ","Yan ","Tan ","Wei ","Huai ","Long ","Long ","Rui ","Li ","Lin ","Rang ","Ten ","Xun ","Yan ","Lei ","Ba ","[?] ","Shi ","Ren ","[?] ","Zhuang ","Zhuang ","Sheng ","Yi ","Mai ","Ke ","Zhu ","Zhuang ","Hu ","Hu ","Kun ","Yi ","Hu ","Xu ","Kun ","Shou ","Mang ","Zun "]});var KO=v((Gxe,zO)=>{zO.exports=["Shou ","Yi ","Zhi ","Gu ","Chu ","Jiang ","Feng ","Bei ","Cay ","Bian ","Sui ","Qun ","Ling ","Fu ","Zuo ","Xia ","Xiong ","[?] ","Nao ","Xia ","Kui ","Xi ","Wai ","Yuan ","Mao ","Su ","Duo ","Duo ","Ye ","Qing ","Uys ","Gou ","Gou ","Qi ","Meng ","Meng ","Yin ","Huo ","Chen ","Da ","Ze ","Tian ","Tai ","Fu ","Guai ","Yao ","Yang ","Hang ","Gao ","Shi ","Ben ","Tai ","Tou ","Yan ","Bi ","Yi ","Kua ","Jia ","Duo ","Kwu ","Kuang ","Yun ","Jia ","Pa ","En ","Lian ","Huan ","Di ","Yan ","Pao ","Quan ","Qi ","Nai ","Feng ","Xie ","Fen ","Dian ","[?] ","Kui ","Zou ","Huan ","Qi ","Kai ","Zha ","Ben ","Yi ","Jiang ","Tao ","Zang ","Ben ","Xi ","Xiang ","Fei ","Diao ","Xun ","Keng ","Dian ","Ao ","She ","Weng ","Pan ","Ao ","Wu ","Ao ","Jiang ","Lian ","Duo ","Yun ","Jiang ","Shi ","Fen ","Huo ","Bi ","Lian ","Duo ","Nu ","Nu ","Ding ","Nai ","Qian ","Jian ","Ta ","Jiu ","Nan ","Cha ","Hao ","Xian ","Fan ","Ji ","Shuo ","Ru ","Fei ","Wang ","Hong ","Zhuang ","Fu ","Ma ","Dan ","Ren ","Fu ","Jing ","Yan ","Xie ","Wen ","Zhong ","Pa ","Du ","Ji ","Keng ","Zhong ","Yao ","Jin ","Yun ","Miao ","Pei ","Shi ","Yue ","Zhuang ","Niu ","Yan ","Na ","Xin ","Fen ","Bi ","Yu ","Tuo ","Feng ","Yuan ","Fang ","Wu ","Yu ","Gui ","Du ","Ba ","Ni ","Zhou ","Zhuo ","Zhao ","Da ","Nai ","Yuan ","Tou ","Xuan ","Zhi ","E ","Mei ","Mo ","Qi ","Bi ","Shen ","Qie ","E ","He ","Xu ","Fa ","Zheng ","Min ","Ban ","Mu ","Fu ","Ling ","Zi ","Zi ","Shi ","Ran ","Shan ","Yang ","Man ","Jie ","Gu ","Si ","Xing ","Wei ","Zi ","Ju ","Shan ","Pin ","Ren ","Yao ","Tong ","Jiang ","Shu ","Ji ","Gai ","Shang ","Kuo ","Juan ","Jiao ","Gou ","Mu ","Jian ","Jian ","Yi ","Nian ","Zhi ","Ji ","Ji ","Xian ","Heng ","Guang ","Jun ","Kua ","Yan ","Ming ","Lie ","Pei ","Yan ","You ","Yan ","Cha ","Shen ","Yin ","Chi ","Gui ","Quan ","Zi "]});var VO=v((zxe,QO)=>{QO.exports=["Song ","Wei ","Hong ","Wa ","Lou ","Ya ","Rao ","Jiao ","Luan ","Ping ","Xian ","Shao ","Li ","Cheng ","Xiao ","Mang ","Fu ","Suo ","Wu ","Wei ","Ke ","Lai ","Chuo ","Ding ","Niang ","Xing ","Nan ","Yu ","Nuo ","Pei ","Nei ","Juan ","Shen ","Zhi ","Han ","Di ","Zhuang ","E ","Pin ","Tui ","Han ","Mian ","Wu ","Yan ","Wu ","Xi ","Yan ","Yu ","Si ","Yu ","Wa ","[?] ","Xian ","Ju ","Qu ","Shui ","Qi ","Xian ","Zhui ","Dong ","Chang ","Lu ","Ai ","E ","E ","Lou ","Mian ","Cong ","Pou ","Ju ","Po ","Cai ","Ding ","Wan ","Biao ","Xiao ","Shu ","Qi ","Hui ","Fu ","E ","Wo ","Tan ","Fei ","Wei ","Jie ","Tian ","Ni ","Quan ","Jing ","Hun ","Jing ","Qian ","Dian ","Xing ","Hu ","Wa ","Lai ","Bi ","Yin ","Chou ","Chuo ","Fu ","Jing ","Lun ","Yan ","Lan ","Kun ","Yin ","Ya ","Ju ","Li ","Dian ","Xian ","Hwa ","Hua ","Ying ","Chan ","Shen ","Ting ","Dang ","Yao ","Wu ","Nan ","Ruo ","Jia ","Tou ","Xu ","Yu ","Wei ","Ti ","Rou ","Mei ","Dan ","Ruan ","Qin ","Hui ","Wu ","Qian ","Chun ","Mao ","Fu ","Jie ","Duan ","Xi ","Zhong ","Mei ","Huang ","Mian ","An ","Ying ","Xuan ","Jie ","Wei ","Mei ","Yuan ","Zhen ","Qiu ","Ti ","Xie ","Tuo ","Lian ","Mao ","Ran ","Si ","Pian ","Wei ","Wa ","Jiu ","Hu ","Ao ","[?] ","Bou ","Xu ","Tou ","Gui ","Zou ","Yao ","Pi ","Xi ","Yuan ","Ying ","Rong ","Ru ","Chi ","Liu ","Mei ","Pan ","Ao ","Ma ","Gou ","Kui ","Qin ","Jia ","Sao ","Zhen ","Yuan ","Cha ","Yong ","Ming ","Ying ","Ji ","Su ","Niao ","Xian ","Tao ","Pang ","Lang ","Nao ","Bao ","Ai ","Pi ","Pin ","Yi ","Piao ","Yu ","Lei ","Xuan ","Man ","Yi ","Zhang ","Kang ","Yong ","Ni ","Li ","Di ","Gui ","Yan ","Jin ","Zhuan ","Chang ","Ce ","Han ","Nen ","Lao ","Mo ","Zhe ","Hu ","Hu ","Ao ","Nen ","Qiang ","Ma ","Pie ","Gu ","Wu ","Jiao ","Tuo ","Zhan ","Mao ","Xian ","Xian ","Mo ","Liao ","Lian ","Hua "]});var tA=v((Kxe,eA)=>{eA.exports=["Gui ","Deng ","Zhi ","Xu ","Yi ","Hua ","Xi ","Hui ","Rao ","Xi ","Yan ","Chan ","Jiao ","Mei ","Fan ","Fan ","Xian ","Yi ","Wei ","Jiao ","Fu ","Shi ","Bi ","Shan ","Sui ","Qiang ","Lian ","Huan ","Xin ","Niao ","Dong ","Yi ","Can ","Ai ","Niang ","Neng ","Ma ","Tiao ","Chou ","Jin ","Ci ","Yu ","Pin ","Yong ","Xu ","Nai ","Yan ","Tai ","Ying ","Can ","Niao ","Wo ","Ying ","Mian ","Kaka ","Ma ","Shen ","Xing ","Ni ","Du ","Liu ","Yuan ","Lan ","Yan ","Shuang ","Ling ","Jiao ","Niang ","Lan ","Xian ","Ying ","Shuang ","Shuai ","Quan ","Mi ","Li ","Luan ","Yan ","Zhu ","Lan ","Zi ","Jie ","Jue ","Jue ","Kong ","Yun ","Zi ","Zi ","Cun ","Sun ","Fu ","Bei ","Zi ","Xiao ","Xin ","Meng ","Si ","Tai ","Bao ","Ji ","Gu ","Nu ","Xue ","[?] ","Zhuan ","Hai ","Luan ","Sun ","Huai ","Mie ","Cong ","Qian ","Shu ","Chan ","Ya ","Zi ","Ni ","Fu ","Zi ","Li ","Xue ","Bo ","Ru ","Lai ","Nie ","Nie ","Ying ","Luan ","Mian ","Zhu ","Rong ","Ta ","Gui ","Zhai ","Qiong ","Yu ","Shou ","An ","Tu ","Song ","Wan ","Rou ","Yao ","Hong ","Yi ","Jing ","Zhun ","Mi ","Zhu ","Dang ","Hong ","Zong ","Guan ","Zhou ","Ding ","Wan ","Yi ","Bao ","Shi ","Shi ","Chong ","Shen ","Ke ","Xuan ","Shi ","You ","Huan ","Yi ","Tiao ","Shi ","Xian ","Gong ","Cheng ","Qun ","Gong ","Xiao ","Zai ","Zha ","Bao ","Hai ","Yan ","Xiao ","Jia ","Shen ","Chen ","Rong ","Huang ","Mi ","Kou ","Kuan ","Bin ","Su ","Cai ","Zan ","Ji ","Yuan ","Ji ","Yin ","Mi ","Kou ","Qing ","Que ","Zhen ","Jian ","Fu ","Ning ","Bing ","Huan ","Mei ","Qin ","Han ","Yu ","Shi ","Ning ","Qin ","Ning ","Zhi ","Yu ","Bao ","Kuan ","Ning ","Qin ","Mo ","Cha ","Ju ","Gua ","Qin ","Hu ","Wu ","Liao ","Shi ","Zhu ","Zhai ","Shen ","Wei ","Xie ","Kuan ","Hui ","Liao ","Jun ","Huan ","Yi ","Yi ","Bao ","Qin ","Chong ","Bao ","Feng ","Cun ","Dui ","Si ","Xun ","Dao ","Lu ","Dui ","Shou "]});var nA=v((Qxe,iA)=>{iA.exports=["Po ","Feng ","Zhuan ","Fu ","She ","Ke ","Jiang ","Jiang ","Zhuan ","Wei ","Zun ","Xun ","Shu ","Dui ","Dao ","Xiao ","Ji ","Shao ","Er ","Er ","Er ","Ga ","Jian ","Shu ","Chen ","Shang ","Shang ","Mo ","Ga ","Chang ","Liao ","Xian ","Xian ","[?] ","Wang ","Wang ","You ","Liao ","Liao ","Yao ","Mang ","Wang ","Wang ","Wang ","Ga ","Yao ","Duo ","Kui ","Zhong ","Jiu ","Gan ","Gu ","Gan ","Tui ","Gan ","Gan ","Shi ","Yin ","Chi ","Kao ","Ni ","Jin ","Wei ","Niao ","Ju ","Pi ","Ceng ","Xi ","Bi ","Ju ","Jie ","Tian ","Qu ","Ti ","Jie ","Wu ","Diao ","Shi ","Shi ","Ping ","Ji ","Xie ","Chen ","Xi ","Ni ","Zhan ","Xi ","[?] ","Man ","E ","Lou ","Ping ","Ti ","Fei ","Shu ","Xie ","Tu ","Lu ","Lu ","Xi ","Ceng ","Lu ","Ju ","Xie ","Ju ","Jue ","Liao ","Jue ","Shu ","Xi ","Che ","Tun ","Ni ","Shan ","[?] ","Xian ","Li ","Xue ","Nata ","[?] ","Long ","Yi ","Qi ","Ren ","Wu ","Han ","Shen ","Yu ","Chu ","Sui ","Qi ","[?] ","Yue ","Ban ","Yao ","Ang ","Ya ","Wu ","Jie ","E ","Ji ","Qian ","Fen ","Yuan ","Qi ","Cen ","Qian ","Qi ","Cha ","Jie ","Qu ","Gang ","Xian ","Ao ","Lan ","Dao ","Ba ","Zuo ","Zuo ","Yang ","Ju ","Gang ","Ke ","Gou ","Xue ","Bei ","Li ","Tiao ","Ju ","Yan ","Fu ","Xiu ","Jia ","Ling ","Tuo ","Pei ","You ","Dai ","Kuang ","Yue ","Qu ","Hu ","Po ","Min ","An ","Tiao ","Ling ","Chi ","Yuri ","Dong ","Cem ","Kui ","Xiu ","Mao ","Tong ","Xue ","Yi ","Kura ","He ","Ke ","Luo ","E ","Fu ","Xun ","Die ","Lu ","An ","Er ","Gai ","Quan ","Tong ","Yi ","Mu ","Shi ","An ","Wei ","Hu ","Zhi ","Mi ","Li ","Ji ","Tong ","Wei ","You ","Sang ","Xia ","Li ","Yao ","Jiao ","Zheng ","Luan ","Jiao ","E ","E ","Yu ","Ye ","Bu ","Qiao ","Qun ","Feng ","Feng ","Nao ","Li ","You ","Xian ","Hong ","Dao ","Shen ","Cheng ","Tu ","Geng ","Jun ","Hao ","Xia ","Yin ","Yu "]});var oA=v((Vxe,rA)=>{rA.exports=["Lang ","Kan ","Lao ","Lai ","Xian ","Que ","Kong ","Chong ","Chong ","Ta ","Lin ","Hua ","Ju ","Lai ","Qi ","Min ","Kun ","Kun ","Zu ","Gu ","Cui ","Ya ","Ya ","Gang ","Lun ","Lun ","Leng ","Jue ","Duo ","Zheng ","Guo ","Yin ","Dong ","Han ","Zheng ","Wei ","Yao ","Pi ","Yan ","Song ","Jie ","Beng ","Zu ","Jue ","Dong ","Zhan ","Gu ","Yin ","[?] ","Ze ","Huang ","Yu ","Wei ","Yang ","Feng ","Qiu ","Dun ","Ti ","Yi ","Zhi ","Shi ","Zai ","Yao ","E ","Zhu ","Kan ","Lu ","Yan ","Mei ","Gan ","Ji ","Ji ","Huan ","Ting ","Sheng ","Mei ","Qian ","Wu ","Yu ","Zong ","Lan ","Jue ","Yan ","Yan ","Wei ","Zong ","Cha ","Sui ","Rong ","Yamashina ","Qin ","Yu ","Kewashii ","Lou ","Tu ","Dui ","Xi ","Weng ","Cang ","Dang ","Hong ","Jie ","Ai ","Liu ","Wu ","Song ","Qiao ","Zi ","Wei ","Beng ","Dian ","Cuo ","Qian ","Yong ","Nie ","Cuo ","Ji ","[?] ","Tao ","Song ","Zong ","Jiang ","Liao ","Kang ","Chan ","Die ","Cen ","Ding ","Tu ","Lou ","Zhang ","Zhan ","Zhan ","Ao ","Cao ","Qu ","Qiang ","Zui ","Zui ","Dao ","Dao ","Xi ","Yu ","Bo ","Long ","Xiang ","Ceng ","Bo ","Qin ","Jiao ","Yan ","Lao ","Zhan ","Lin ","Liao ","Liao ","Jin ","Deng ","Duo ","Zun ","Jiao ","Gui ","Yao ","Qiao ","Yao ","Jue ","Zhan ","Yi ","Xue ","Nao ","Ye ","Ye ","Yi ","E ","Xian ","Ji ","Xie ","Ke ","Xi ","Di ","Ao ","Zui ","[?] ","Ni ","Rong ","Dao ","Ling ","Za ","Yu ","Yue ","Yin ","[?] ","Jie ","Li ","Sui ","Long ","Long ","Dian ","Ying ","Xi ","Ju ","Chan ","Ying ","Kui ","Yan ","Wei ","Nao ","Quan ","Chao ","Cuan ","Luan ","Dian ","Dian ","[?] ","Yan ","Yan ","Yan ","Nao ","Yan ","Chuan ","Gui ","Chuan ","Zhou ","Huang ","Jing ","Xun ","Chao ","Chao ","Lie ","Gong ","Zuo ","Qiao ","Ju ","Gong ","Kek ","Wu ","Pwu ","Pwu ","Chai ","Qiu ","Qiu ","Ji ","Yi ","Si ","Ba ","Zhi ","Zhao ","Xiang ","Yi ","Jin ","Xun ","Juan ","Phas ","Xun ","Jin ","Fu "]});var aA=v((eCe,sA)=>{sA.exports=["Za ","Bi ","Shi ","Bu ","Ding ","Shuai ","Fan ","Nie ","Shi ","Fen ","Pa ","Zhi ","Xi ","Hu ","Dan ","Wei ","Zhang ","Tang ","Dai ","Ma ","Pei ","Pa ","Tie ","Fu ","Lian ","Zhi ","Zhou ","Bo ","Zhi ","Di ","Mo ","Yi ","Yi ","Ping ","Qia ","Juan ","Ru ","Shuai ","Dai ","Zheng ","Shui ","Qiao ","Zhen ","Shi ","Qun ","Xi ","Bang ","Dai ","Gui ","Chou ","Ping ","Zhang ","Sha ","Wan ","Dai ","Wei ","Chang ","Sha ","Qi ","Ze ","Guo ","Mao ","Du ","Hou ","Zheng ","Xu ","Mi ","Wei ","Wo ","Fu ","Yi ","Bang ","Ping ","Tazuna ","Gong ","Pan ","Huang ","Dao ","Mi ","Jia ","Teng ","Hui ","Zhong ","Shan ","Man ","Mu ","Biao ","Guo ","Ze ","Mu ","Bang ","Zhang ","Jiong ","Chan ","Fu ","Zhi ","Hu ","Fan ","Chuang ","Bi ","Hei ","[?] ","Mi ","Qiao ","Chan ","Fen ","Meng ","Bang ","Chou ","Mie ","Chu ","Jie ","Xian ","Lan ","Gan ","Ping ","Nian ","Qian ","Bing ","Bing ","Xing ","Gan ","Yao ","Huan ","You ","You ","Ji ","Yan ","Pi ","Ting ","Ze ","Guang ","Zhuang ","Mo ","Qing ","Bi ","Qin ","Dun ","Chuang ","Gui ","Ya ","Bai ","Jie ","Xu ","Lu ","Wu ","[?] ","Ku ","Ying ","Di ","Pao ","Dian ","Ya ","Miao ","Geng ","Ci ","Fu ","Tong ","Pang ","Fei ","Xiang ","Yi ","Zhi ","Tiao ","Zhi ","Xiu ","Du ","Zuo ","Xiao ","Tu ","Gui ","Ku ","Pang ","Ting ","You ","Bu ","Ding ","Cheng ","Lai ","Bei ","Ji ","An ","Shu ","Kang ","Yong ","Tuo ","Song ","Shu ","Qing ","Yu ","Yu ","Miao ","Sou ","Ce ","Xiang ","Fei ","Jiu ","He ","Hui ","Liu ","Sha ","Lian ","Lang ","Sou ","Jian ","Pou ","Qing ","Jiu ","Jiu ","Qin ","Ao ","Kuo ","Lou ","Yin ","Liao ","Dai ","Lu ","Yi ","Chu ","Chan ","Tu ","Si ","Xin ","Miao ","Chang ","Wu ","Fei ","Guang ","Koc ","Kuai ","Bi ","Qiang ","Xie ","Lin ","Lin ","Liao ","Lu ","[?] ","Ying ","Xian ","Ting ","Yong ","Li ","Ting ","Yin ","Xun ","Yan ","Ting ","Di ","Po ","Jian ","Hui ","Nai ","Hui ","Gong ","Nian "]});var uA=v((tCe,lA)=>{lA.exports=["Kai ","Bian ","Yi ","Qi ","Nong ","Fen ","Ju ","Yan ","Yi ","Zang ","Bi ","Yi ","Yi ","Er ","San ","Shi ","Er ","Shi ","Shi ","Gong ","Diao ","Yin ","Hu ","Fu ","Hong ","Wu ","Tui ","Chi ","Jiang ","Ba ","Shen ","Di ","Zhang ","Jue ","Tao ","Fu ","Di ","Mi ","Xian ","Hu ","Chao ","Nu ","Jing ","Zhen ","Yi ","Mi ","Quan ","Wan ","Shao ","Ruo ","Xuan ","Jing ","Dun ","Zhang ","Jiang ","Qiang ","Peng ","Dan ","Qiang ","Bi ","Bi ","She ","Dan ","Jian ","Gou ","Sei ","Fa ","Bi ","Kou ","Nagi ","Bie ","Xiao ","Dan ","Kuo ","Qiang ","Hong ","Mi ","Kuo ","Wan ","Jue ","Ji ","Ji ","Gui ","Dang ","Lu ","Lu ","Tuan ","Hui ","Zhi ","Hui ","Hui ","Yi ","Yi ","Yi ","Yi ","Huo ","Huo ","Shan ","Xing ","Wen ","Tong ","Yan ","Yan ","Yu ","Chi ","Cai ","Biao ","Diao ","Bin ","Peng ","Yong ","Piao ","Zhang ","Ying ","Chi ","Chi ","Zhuo ","Tuo ","Ji ","Pang ","Zhong ","Yi ","Wang ","Che ","Bi ","Chi ","Ling ","Fu ","Wang ","Zheng ","Cu ","Wang ","Jing ","Dai ","Xi ","Xun ","Hen ","Yang ","Huai ","Lu ","Hou ","Wa ","Cheng ","Zhi ","Xu ","Jing ","Tu ","Cong ","[?] ","Lai ","Cong ","De ","Pai ","Xi ","[?] ","Qi ","Chang ","Zhi ","Cong ","Zhou ","Lai ","Yu ","Xie ","Jie ","Jian ","Chi ","Jia ","Bian ","Huang ","Fu ","Xun ","Wei ","Pang ","Yao ","Wei ","Xi ","Zheng ","Piao ","Chi ","De ","Zheng ","Zheng ","Bie ","De ","Chong ","Che ","Jiao ","Wei ","Jiao ","Hui ","Mei ","Long ","Xiang ","Bao ","Qu ","Xin ","Shu ","Bi ","Yi ","Le ","Ren ","Dao ","Ding ","Gai ","Ji ","Ren ","Ren ","Chan ","Tan ","Te ","Te ","Gan ","Qi ","Shi ","Cun ","Zhi ","Wang ","Mang ","Xi ","Fan ","Ying ","Tian ","Min ","Min ","Zhong ","Chong ","Wu ","Ji ","Wu ","Xi ","Ye ","You ","Wan ","Cong ","Zhong ","Kuai ","Yu ","Bian ","Zhi ","Qi ","Cui ","Chen ","Tai ","Tun ","Qian ","Nian ","Hun ","Xiong ","Niu ","Wang ","Xian ","Xin ","Kang ","Hu ","Kai ","Fen "]});var dA=v((iCe,cA)=>{cA.exports=["Huai ","Tai ","Song ","Wu ","Ou ","Chang ","Chuang ","Ju ","Yi ","Bao ","Chao ","Min ","Pei ","Zuo ","Zen ","Yang ","Kou ","Ban ","Nu ","Nao ","Zheng ","Pa ","Bu ","Tie ","Gu ","Hu ","Ju ","Da ","Lian ","Si ","Chou ","Di ","Dai ","Yi ","Tu ","You ","Fu ","Ji ","Peng ","Xing ","Yuan ","Ni ","Guai ","Fu ","Xi ","Bi ","You ","Qie ","Xuan ","Cong ","Bing ","Huang ","Xu ","Chu ","Pi ","Xi ","Xi ","Tan ","Koraeru ","Zong ","Dui ","[?] ","Ki ","Yi ","Chi ","Ren ","Xun ","Shi ","Xi ","Lao ","Heng ","Kuang ","Mu ","Zhi ","Xie ","Lian ","Tiao ","Huang ","Die ","Hao ","Kong ","Gui ","Heng ","Xi ","Xiao ","Shu ","S ","Kua ","Qiu ","Yang ","Hui ","Hui ","Chi ","Jia ","Yi ","Xiong ","Guai ","Lin ","Hui ","Zi ","Xu ","Chi ","Xiang ","Nu ","Hen ","En ","Ke ","Tong ","Tian ","Gong ","Quan ","Xi ","Qia ","Yue ","Peng ","Ken ","De ","Hui ","E ","Kyuu ","Tong ","Yan ","Kai ","Ce ","Nao ","Yun ","Mang ","Yong ","Yong ","Yuan ","Pi ","Kun ","Qiao ","Yue ","Yu ","Yu ","Jie ","Xi ","Zhe ","Lin ","Ti ","Han ","Hao ","Qie ","Ti ","Bu ","Yi ","Qian ","Hui ","Xi ","Bei ","Man ","Yi ","Heng ","Song ","Quan ","Cheng ","Hui ","Wu ","Wu ","You ","Li ","Liang ","Huan ","Cong ","Yi ","Yue ","Li ","Nin ","Nao ","E ","Que ","Xuan ","Qian ","Wu ","Min ","Cong ","Fei ","Bei ","Duo ","Cui ","Chang ","Men ","Li ","Ji ","Guan ","Guan ","Xing ","Dao ","Qi ","Kong ","Tian ","Lun ","Xi ","Kan ","Kun ","Ni ","Qing ","Chou ","Dun ","Guo ","Chan ","Liang ","Wan ","Yuan ","Jin ","Ji ","Lin ","Yu ","Huo ","He ","Quan ","Tan ","Ti ","Ti ","Nie ","Wang ","Chuo ","Bu ","Hun ","Xi ","Tang ","Xin ","Wei ","Hui ","E ","Rui ","Zong ","Jian ","Yong ","Dian ","Ju ","Can ","Cheng ","De ","Bei ","Qie ","Can ","Dan ","Guan ","Duo ","Nao ","Yun ","Xiang ","Zhui ","Die ","Huang ","Chun ","Qiong ","Re ","Xing ","Ce ","Bian ","Hun ","Zong ","Ti "]});var gA=v((nCe,hA)=>{hA.exports=["Qiao ","Chou ","Bei ","Xuan ","Wei ","Ge ","Qian ","Wei ","Yu ","Yu ","Bi ","Xuan ","Huan ","Min ","Bi ","Yi ","Mian ","Yong ","Kai ","Dang ","Yin ","E ","Chen ","Mou ","Ke ","Ke ","Yu ","Ai ","Qie ","Yan ","Nuo ","Gan ","Yun ","Zong ","Sai ","Leng ","Fen ","[?] ","Kui ","Kui ","Que ","Gong ","Yun ","Su ","Su ","Qi ","Yao ","Song ","Huang ","Ji ","Gu ","Ju ","Chuang ","Ni ","Xie ","Kai ","Zheng ","Yong ","Cao ","Sun ","Shen ","Bo ","Kai ","Yuan ","Xie ","Hun ","Yong ","Yang ","Li ","Sao ","Tao ","Yin ","Ci ","Xu ","Qian ","Tai ","Huang ","Yun ","Shen ","Ming ","[?] ","She ","Cong ","Piao ","Mo ","Mu ","Guo ","Chi ","Can ","Can ","Can ","Cui ","Min ","Te ","Zhang ","Tong ","Ao ","Shuang ","Man ","Guan ","Que ","Zao ","Jiu ","Hui ","Kai ","Lian ","Ou ","Song ","Jin ","Yin ","Lu ","Shang ","Wei ","Tuan ","Man ","Qian ","She ","Yong ","Qing ","Kang ","Di ","Zhi ","Lou ","Juan ","Qi ","Qi ","Yu ","Ping ","Liao ","Cong ","You ","Chong ","Zhi ","Tong ","Cheng ","Qi ","Qu ","Peng ","Bei ","Bie ","Chun ","Jiao ","Zeng ","Chi ","Lian ","Ping ","Kui ","Hui ","Qiao ","Cheng ","Yin ","Yin ","Xi ","Xi ","Dan ","Tan ","Duo ","Dui ","Dui ","Su ","Jue ","Ce ","Xiao ","Fan ","Fen ","Lao ","Lao ","Chong ","Han ","Qi ","Xian ","Min ","Jing ","Liao ","Wu ","Can ","Jue ","Cu ","Xian ","Tan ","Sheng ","Pi ","Yi ","Chu ","Xian ","Nao ","Dan ","Tan ","Jing ","Song ","Han ","Jiao ","Wai ","Huan ","Dong ","Qin ","Qin ","Qu ","Cao ","Ken ","Xie ","Ying ","Ao ","Mao ","Yi ","Lin ","Se ","Jun ","Huai ","Men ","Lan ","Ai ","Lin ","Yan ","Gua ","Xia ","Chi ","Yu ","Yin ","Dai ","Meng ","Ai ","Meng ","Dui ","Qi ","Mo ","Lan ","Men ","Chou ","Zhi ","Nuo ","Nuo ","Yan ","Yang ","Bo ","Zhi ","Kuang ","Kuang ","You ","Fu ","Liu ","Mie ","Cheng ","[?] ","Chan ","Meng ","Lan ","Huai ","Xuan ","Rang ","Chan ","Ji ","Ju ","Huan ","She ","Yi "]});var fA=v((rCe,pA)=>{pA.exports=["Lian ","Nan ","Mi ","Tang ","Jue ","Gang ","Gang ","Gang ","Ge ","Yue ","Wu ","Jian ","Xu ","Shu ","Rong ","Xi ","Cheng ","Wo ","Jie ","Ge ","Jian ","Qiang ","Huo ","Qiang ","Zhan ","Dong ","Qi ","Jia ","Die ","Zei ","Jia ","Ji ","Shi ","Kan ","Ji ","Kui ","Gai ","Deng ","Zhan ","Chuang ","Ge ","Jian ","Jie ","Yu ","Jian ","Yan ","Lu ","Xi ","Zhan ","Xi ","Xi ","Chuo ","Dai ","Qu ","Hu ","Hu ","Hu ","E ","Shi ","Li ","Mao ","Hu ","Li ","Fang ","Suo ","Bian ","Dian ","Jiong ","Shang ","Yi ","Yi ","Shan ","Hu ","Fei ","Yan ","Shou ","T ","Cai ","Zha ","Qiu ","Le ","Bu ","Ba ","Da ","Reng ","Fu ","Hameru ","Zai ","Tuo ","Zhang ","Diao ","Kang ","Yu ","Ku ","Han ","Shen ","Cha ","Yi ","Gu ","Kou ","Wu ","Tuo ","Qian ","Zhi ","Ren ","Kuo ","Men ","Sao ","Yang ","Niu ","Ban ","Che ","Rao ","Xi ","Qian ","Ban ","Jia ","Yu ","Fu ","Ao ","Xi ","Pi ","Zhi ","Zi ","E ","Dun ","Zhao ","Cheng ","Ji ","Yan ","Kuang ","Bian ","Chao ","Ju ","Wen ","Hu ","Yue ","Jue ","Ba ","Qin ","Zhen ","Zheng ","Yun ","Wan ","Nu ","Yi ","Shu ","Zhua ","Pou ","Tou ","Dou ","Kang ","Zhe ","Pou ","Fu ","Pao ","Ba ","Ao ","Ze ","Tuan ","Kou ","Lun ","Qiang ","[?] ","Hu ","Bao ","Bing ","Zhi ","Peng ","Tan ","Pu ","Pi ","Tai ","Yao ","Zhen ","Zha ","Yang ","Bao ","He ","Ni ","Yi ","Di ","Chi ","Pi ","Za ","Mo ","Mo ","Shen ","Ya ","Chou ","Qu ","Min ","Chu ","Jia ","Fu ","Zhan ","Zhu ","Dan ","Chai ","Mu ","Nian ","La ","Fu ","Pao ","Ban ","Pai ","Ling ","Na ","Guai ","Qian ","Ju ","Tuo ","Ba ","Tuo ","Tuo ","Ao ","Ju ","Zhuo ","Pan ","Zhao ","Bai ","Bai ","Di ","Ni ","Ju ","Kuo ","Long ","Jian ","[?] ","Yong ","Lan ","Ning ","Bo ","Ze ","Qian ","Hen ","Gua ","Shi ","Jie ","Zheng ","Nin ","Gong ","Gong ","Quan ","Shuan ","Cun ","Zan ","Kao ","Chi ","Xie ","Ce ","Hui ","Pin ","Zhuai ","Shi ","Na "]});var bA=v((oCe,mA)=>{mA.exports=["Bo ","Chi ","Gua ","Zhi ","Kuo ","Duo ","Duo ","Zhi ","Qie ","An ","Nong ","Zhen ","Ge ","Jiao ","Ku ","Dong ","Ru ","Tiao ","Lie ","Zha ","Lu ","Die ","Wa ","Jue ","Mushiru ","Ju ","Zhi ","Luan ","Ya ","Zhua ","Ta ","Xie ","Nao ","Dang ","Jiao ","Zheng ","Ji ","Hui ","Xun ","Ku ","Ai ","Tuo ","Nuo ","Cuo ","Bo ","Geng ","Ti ","Zhen ","Cheng ","Suo ","Suo ","Keng ","Mei ","Long ","Ju ","Peng ","Jian ","Yi ","Ting ","Shan ","Nuo ","Wan ","Xie ","Cha ","Feng ","Jiao ","Wu ","Jun ","Jiu ","Tong ","Kun ","Huo ","Tu ","Zhuo ","Pou ","Le ","Ba ","Han ","Shao ","Nie ","Juan ","Ze ","Song ","Ye ","Jue ","Bu ","Huan ","Bu ","Zun ","Yi ","Zhai ","Lu ","Sou ","Tuo ","Lao ","Sun ","Bang ","Jian ","Huan ","Dao ","[?] ","Wan ","Qin ","Peng ","She ","Lie ","Min ","Men ","Fu ","Bai ","Ju ","Dao ","Wo ","Ai ","Juan ","Yue ","Zong ","Chen ","Chui ","Jie ","Tu ","Ben ","Na ","Nian ","Nuo ","Zu ","Wo ","Xi ","Xian ","Cheng ","Dian ","Sao ","Lun ","Qing ","Gang ","Duo ","Shou ","Diao ","Pou ","Di ","Zhang ","Gun ","Ji ","Tao ","Qia ","Qi ","Pai ","Shu ","Qian ","Ling ","Yi ","Ya ","Jue ","Zheng ","Liang ","Gua ","Yi ","Huo ","Shan ","Zheng ","Lue ","Cai ","Tan ","Che ","Bing ","Jie ","Ti ","Kong ","Tui ","Yan ","Cuo ","Zou ","Ju ","Tian ","Qian ","Ken ","Bai ","Shou ","Jie ","Lu ","Guo ","Haba ","[?] ","Zhi ","Dan ","Mang ","Xian ","Sao ","Guan ","Peng ","Yuan ","Nuo ","Jian ","Zhen ","Jiu ","Jian ","Yu ","Yan ","Kui ","Nan ","Hong ","Rou ","Pi ","Wei ","Sai ","Zou ","Xuan ","Miao ","Ti ","Nie ","Cha ","Shi ","Zong ","Zhen ","Yi ","Shun ","Heng ","Bian ","Yang ","Huan ","Yan ","Zuan ","An ","Xu ","Ya ","Wo ","Ke ","Chuai ","Ji ","Ti ","La ","La ","Cheng ","Kai ","Jiu ","Jiu ","Tu ","Jie ","Hui ","Geng ","Chong ","Shuo ","She ","Xie ","Yuan ","Qian ","Ye ","Cha ","Zha ","Bei ","Yao ","[?] ","[?] ","Lan ","Wen ","Qin "]});var vA=v((sCe,yA)=>{yA.exports=["Chan ","Ge ","Lou ","Zong ","Geng ","Jiao ","Gou ","Qin ","Yong ","Que ","Chou ","Chi ","Zhan ","Sun ","Sun ","Bo ","Chu ","Rong ","Beng ","Cuo ","Sao ","Ke ","Yao ","Dao ","Zhi ","Nu ","Xie ","Jian ","Sou ","Qiu ","Gao ","Xian ","Shuo ","Sang ","Jin ","Mie ","E ","Chui ","Nuo ","Shan ","Ta ","Jie ","Tang ","Pan ","Ban ","Da ","Li ","Tao ","Hu ","Zhi ","Wa ","Xia ","Qian ","Wen ","Qiang ","Tian ","Zhen ","E ","Xi ","Nuo ","Quan ","Cha ","Zha ","Ge ","Wu ","En ","She ","Kang ","She ","Shu ","Bai ","Yao ","Bin ","Sou ","Tan ","Sa ","Chan ","Suo ","Liao ","Chong ","Chuang ","Guo ","Bing ","Feng ","Shuai ","Di ","Qi ","Sou ","Zhai ","Lian ","Tang ","Chi ","Guan ","Lu ","Luo ","Lou ","Zong ","Gai ","Hu ","Zha ","Chuang ","Tang ","Hua ","Cui ","Nai ","Mo ","Jiang ","Gui ","Ying ","Zhi ","Ao ","Zhi ","Nie ","Man ","Shan ","Kou ","Shu ","Suo ","Tuan ","Jiao ","Mo ","Mo ","Zhe ","Xian ","Keng ","Piao ","Jiang ","Yin ","Gou ","Qian ","Lue ","Ji ","Ying ","Jue ","Pie ","Pie ","Lao ","Dun ","Xian ","Ruan ","Kui ","Zan ","Yi ","Xun ","Cheng ","Cheng ","Sa ","Nao ","Heng ","Si ","Qian ","Huang ","Da ","Zun ","Nian ","Lin ","Zheng ","Hui ","Zhuang ","Jiao ","Ji ","Cao ","Dan ","Dan ","Che ","Bo ","Che ","Jue ","Xiao ","Liao ","Ben ","Fu ","Qiao ","Bo ","Cuo ","Zhuo ","Zhuan ","Tuo ","Pu ","Qin ","Dun ","Nian ","[?] ","Xie ","Lu ","Jiao ","Cuan ","Ta ","Han ","Qiao ","Zhua ","Jian ","Gan ","Yong ","Lei ","Kuo ","Lu ","Shan ","Zhuo ","Ze ","Pu ","Chuo ","Ji ","Dang ","Suo ","Cao ","Qing ","Jing ","Huan ","Jie ","Qin ","Kuai ","Dan ","Xi ","Ge ","Pi ","Bo ","Ao ","Ju ","Ye ","[?] ","Mang ","Sou ","Mi ","Ji ","Tai ","Zhuo ","Dao ","Xing ","Lan ","Ca ","Ju ","Ye ","Ru ","Ye ","Ye ","Ni ","Hu ","Ji ","Bin ","Ning ","Ge ","Zhi ","Jie ","Kuo ","Mo ","Jian ","Xie ","Lie ","Tan ","Bai ","Sou ","Lu ","Lue ","Rao ","Zhi "]});var xA=v((aCe,wA)=>{wA.exports=["Pan ","Yang ","Lei ","Sa ","Shu ","Zan ","Nian ","Xian ","Jun ","Huo ","Li ","La ","Han ","Ying ","Lu ","Long ","Qian ","Qian ","Zan ","Qian ","Lan ","San ","Ying ","Mei ","Rang ","Chan ","[?] ","Cuan ","Xi ","She ","Luo ","Jun ","Mi ","Li ","Zan ","Luan ","Tan ","Zuan ","Li ","Dian ","Wa ","Dang ","Jiao ","Jue ","Lan ","Li ","Nang ","Zhi ","Gui ","Gui ","Qi ","Xin ","Pu ","Sui ","Shou ","Kao ","You ","Gai ","Yi ","Gong ","Gan ","Ban ","Fang ","Zheng ","Bo ","Dian ","Kou ","Min ","Wu ","Gu ","He ","Ce ","Xiao ","Mi ","Chu ","Ge ","Di ","Xu ","Jiao ","Min ","Chen ","Jiu ","Zhen ","Duo ","Yu ","Chi ","Ao ","Bai ","Xu ","Jiao ","Duo ","Lian ","Nie ","Bi ","Chang ","Dian ","Duo ","Yi ","Gan ","San ","Ke ","Yan ","Dun ","Qi ","Dou ","Xiao ","Duo ","Jiao ","Jing ","Yang ","Xia ","Min ","Shu ","Ai ","Qiao ","Ai ","Zheng ","Di ","Zhen ","Fu ","Shu ","Liao ","Qu ","Xiong ","Xi ","Jiao ","Sen ","Jiao ","Zhuo ","Yi ","Lian ","Bi ","Li ","Xiao ","Xiao ","Wen ","Xue ","Qi ","Qi ","Zhai ","Bin ","Jue ","Zhai ","[?] ","Fei ","Ban ","Ban ","Lan ","Yu ","Lan ","Wei ","Dou ","Sheng ","Liao ","Jia ","Hu ","Xie ","Jia ","Yu ","Zhen ","Jiao ","Wo ","Tou ","Chu ","Jin ","Chi ","Yin ","Fu ","Qiang ","Zhan ","Qu ","Zhuo ","Zhan ","Duan ","Zhuo ","Si ","Xin ","Zhuo ","Zhuo ","Qin ","Lin ","Zhuo ","Chu ","Duan ","Zhu ","Fang ","Xie ","Hang ","Yu ","Shi ","Pei ","You ","Mye ","Pang ","Qi ","Zhan ","Mao ","Lu ","Pei ","Pi ","Liu ","Fu ","Fang ","Xuan ","Jing ","Jing ","Ni ","Zu ","Zhao ","Yi ","Liu ","Shao ","Jian ","Es ","Yi ","Qi ","Zhi ","Fan ","Piao ","Fan ","Zhan ","Guai ","Sui ","Yu ","Wu ","Ji ","Ji ","Ji ","Huo ","Ri ","Dan ","Jiu ","Zhi ","Zao ","Xie ","Tiao ","Xun ","Xu ","Xu ","Xu ","Gan ","Han ","Tai ","Di ","Xu ","Chan ","Shi ","Kuang ","Yang ","Shi ","Wang ","Min ","Min ","Tun ","Chun ","Wu "]});var SA=v((lCe,CA)=>{CA.exports=["Yun ","Bei ","Ang ","Ze ","Ban ","Jie ","Kun ","Sheng ","Hu ","Fang ","Hao ","Gui ","Chang ","Xuan ","Ming ","Hun ","Fen ","Qin ","Hu ","Yi ","Xi ","Xin ","Yan ","Ze ","Fang ","Tan ","Shen ","Ju ","Yang ","Zan ","Bing ","Xing ","Ying ","Xuan ","Pei ","Zhen ","Ling ","Chun ","Hao ","Mei ","Zuo ","Mo ","Bian ","Xu ","Hun ","Zhao ","Zong ","Shi ","Shi ","Yu ","Fei ","Die ","Mao ","Ni ","Chang ","Wen ","Dong ","Ai ","Bing ","Ang ","Zhou ","Long ","Xian ","Kuang ","Tiao ","Chao ","Shi ","Huang ","Huang ","Xuan ","Kui ","Xu ","Jiao ","Jin ","Zhi ","Jin ","Shang ","Tong ","Hong ","Yan ","Gai ","Xiang ","Shai ","Xiao ","Ye ","Yun ","Hui ","Han ","Han ","Jun ","Wan ","Xian ","Kun ","Zhou ","Xi ","Cheng ","Sheng ","Bu ","Zhe ","Zhe ","Wu ","Han ","Hui ","Hao ","Chen ","Wan ","Tian ","Zhuo ","Zui ","Zhou ","Pu ","Jing ","Xi ","Shan ","Yi ","Xi ","Qing ","Qi ","Jing ","Gui ","Zhen ","Yi ","Zhi ","An ","Wan ","Lin ","Liang ","Chang ","Wang ","Xiao ","Zan ","Hi ","Xuan ","Xuan ","Yi ","Xia ","Yun ","Hui ","Fu ","Min ","Kui ","He ","Ying ","Du ","Wei ","Shu ","Qing ","Mao ","Nan ","Jian ","Nuan ","An ","Yang ","Chun ","Yao ","Suo ","Jin ","Ming ","Jiao ","Kai ","Gao ","Weng ","Chang ","Qi ","Hao ","Yan ","Li ","Ai ","Ji ","Gui ","Men ","Zan ","Xie ","Hao ","Mu ","Mo ","Cong ","Ni ","Zhang ","Hui ","Bao ","Han ","Xuan ","Chuan ","Liao ","Xian ","Dan ","Jing ","Pie ","Lin ","Tun ","Xi ","Yi ","Ji ","Huang ","Tai ","Ye ","Ye ","Li ","Tan ","Tong ","Xiao ","Fei ","Qin ","Zhao ","Hao ","Yi ","Xiang ","Xing ","Sen ","Jiao ","Bao ","Jing ","Yian ","Ai ","Ye ","Ru ","Shu ","Meng ","Xun ","Yao ","Pu ","Li ","Chen ","Kuang ","Die ","[?] ","Yan ","Huo ","Lu ","Xi ","Rong ","Long ","Nang ","Luo ","Luan ","Shai ","Tang ","Yan ","Chu ","Yue ","Yue ","Qu ","Yi ","Geng ","Ye ","Hu ","He ","Shu ","Cao ","Cao ","Noboru ","Man ","Ceng ","Ceng ","Ti "]});var TA=v((uCe,DA)=>{DA.exports=["Zui ","Can ","Xu ","Hui ","Yin ","Qie ","Fen ","Pi ","Yue ","You ","Ruan ","Peng ","Ban ","Fu ","Ling ","Fei ","Qu ","[?] ","Nu ","Tiao ","Shuo ","Zhen ","Lang ","Lang ","Juan ","Ming ","Huang ","Wang ","Tun ","Zhao ","Ji ","Qi ","Ying ","Zong ","Wang ","Tong ","Lang ","[?] ","Meng ","Long ","Mu ","Deng ","Wei ","Mo ","Ben ","Zha ","Zhu ","Zhu ","[?] ","Zhu ","Ren ","Ba ","Po ","Duo ","Duo ","Dao ","Li ","Qiu ","Ji ","Jiu ","Bi ","Xiu ","Ting ","Ci ","Sha ","Eburi ","Za ","Quan ","Qian ","Yu ","Gan ","Wu ","Cha ","Shan ","Xun ","Fan ","Wu ","Zi ","Li ","Xing ","Cai ","Cun ","Ren ","Shao ","Tuo ","Di ","Zhang ","Mang ","Chi ","Yi ","Gu ","Gong ","Du ","Yi ","Qi ","Shu ","Gang ","Tiao ","Moku ","Soma ","Tochi ","Lai ","Sugi ","Mang ","Yang ","Ma ","Miao ","Si ","Yuan ","Hang ","Fei ","Bei ","Jie ","Dong ","Gao ","Yao ","Xian ","Chu ","Qun ","Pa ","Shu ","Hua ","Xin ","Chou ","Zhu ","Chou ","Song ","Ban ","Song ","Ji ","Yue ","Jin ","Gou ","Ji ","Mao ","Pi ","Bi ","Wang ","Ang ","Fang ","Fen ","Yi ","Fu ","Nan ","Xi ","Hu ","Ya ","Dou ","Xun ","Zhen ","Yao ","Lin ","Rui ","E ","Mei ","Zhao ","Guo ","Zhi ","Cong ","Yun ","Waku ","Dou ","Shu ","Zao ","[?] ","Li ","Haze ","Jian ","Cheng ","Matsu ","Qiang ","Feng ","Nan ","Xiao ","Xian ","Ku ","Ping ","Yi ","Xi ","Zhi ","Guai ","Xiao ","Jia ","Jia ","Gou ","Fu ","Mo ","Yi ","Ye ","Ye ","Shi ","Nie ","Bi ","Duo ","Yi ","Ling ","Bing ","Ni ","La ","He ","Pan ","Fan ","Zhong ","Dai ","Ci ","Yang ","Fu ","Bo ","Mou ","Gan ","Qi ","Ran ","Rou ","Mao ","Zhao ","Song ","Zhe ","Xia ","You ","Shen ","Ju ","Tuo ","Zuo ","Nan ","Ning ","Yong ","Di ","Zhi ","Zha ","Cha ","Dan ","Gu ","Pu ","Jiu ","Ao ","Fu ","Jian ","Bo ","Duo ","Ke ","Nai ","Zhu ","Bi ","Liu ","Chai ","Zha ","Si ","Zhu ","Pei ","Shi ","Guai ","Cha ","Yao ","Jue ","Jiu ","Shi "]});var PA=v((cCe,kA)=>{kA.exports=["Zhi ","Liu ","Mei ","Hoy ","Rong ","Zha ","[?] ","Biao ","Zhan ","Jie ","Long ","Dong ","Lu ","Sayng ","Li ","Lan ","Yong ","Shu ","Xun ","Shuan ","Qi ","Zhen ","Qi ","Li ","Yi ","Xiang ","Zhen ","Li ","Su ","Gua ","Kan ","Bing ","Ren ","Xiao ","Bo ","Ren ","Bing ","Zi ","Chou ","Yi ","Jie ","Xu ","Zhu ","Jian ","Zui ","Er ","Er ","You ","Fa ","Gong ","Kao ","Lao ","Zhan ","Li ","Yin ","Yang ","He ","Gen ","Zhi ","Chi ","Ge ","Zai ","Luan ","Fu ","Jie ","Hang ","Gui ","Tao ","Guang ","Wei ","Kuang ","Ru ","An ","An ","Juan ","Yi ","Zhuo ","Ku ","Zhi ","Qiong ","Tong ","Sang ","Sang ","Huan ","Jie ","Jiu ","Xue ","Duo ","Zhui ","Yu ","Zan ","Kasei ","Ying ","Masu ","[?] ","Zhan ","Ya ","Nao ","Zhen ","Dang ","Qi ","Qiao ","Hua ","Kuai ","Jiang ","Zhuang ","Xun ","Suo ","Sha ","Zhen ","Bei ","Ting ","Gua ","Jing ","Bo ","Ben ","Fu ","Rui ","Tong ","Jue ","Xi ","Lang ","Liu ","Feng ","Qi ","Wen ","Jun ","Gan ","Cu ","Liang ","Qiu ","Ting ","You ","Mei ","Bang ","Long ","Peng ","Zhuang ","Di ","Xuan ","Tu ","Zao ","Ao ","Gu ","Bi ","Di ","Han ","Zi ","Zhi ","Ren ","Bei ","Geng ","Jian ","Huan ","Wan ","Nuo ","Jia ","Tiao ","Ji ","Xiao ","Lu ","Huan ","Shao ","Cen ","Fen ","Song ","Meng ","Wu ","Li ","Li ","Dou ","Cen ","Ying ","Suo ","Ju ","Ti ","Jie ","Kun ","Zhuo ","Shu ","Chan ","Fan ","Wei ","Jing ","Li ","Bing ","Fumoto ","Shikimi ","Tao ","Zhi ","Lai ","Lian ","Jian ","Zhuo ","Ling ","Li ","Qi ","Bing ","Zhun ","Cong ","Qian ","Mian ","Qi ","Qi ","Cai ","Gun ","Chan ","Te ","Fei ","Pai ","Bang ","Pou ","Hun ","Zong ","Cheng ","Zao ","Ji ","Li ","Peng ","Yu ","Yu ","Gu ","Hun ","Dong ","Tang ","Gang ","Wang ","Di ","Xi ","Fan ","Cheng ","Zhan ","Qi ","Yuan ","Yan ","Yu ","Quan ","Yi ","Sen ","Ren ","Chui ","Leng ","Qi ","Zhuo ","Fu ","Ke ","Lai ","Zou ","Zou ","Zhuo ","Guan ","Fen ","Fen ","Chen ","Qiong ","Nie "]});var _A=v((dCe,RA)=>{RA.exports=["Wan ","Guo ","Lu ","Hao ","Jie ","Yi ","Chou ","Ju ","Ju ","Cheng ","Zuo ","Liang ","Qiang ","Zhi ","Zhui ","Ya ","Ju ","Bei ","Jiao ","Zhuo ","Zi ","Bin ","Peng ","Ding ","Chu ","Chang ","Kunugi ","Momiji ","Jian ","Gui ","Xi ","Du ","Qian ","Kunugi ","Soko ","Shide ","Luo ","Zhi ","Ken ","Myeng ","Tafu ","[?] ","Peng ","Zhan ","[?] ","Tuo ","Sen ","Duo ","Ye ","Fou ","Wei ","Wei ","Duan ","Jia ","Zong ","Jian ","Yi ","Shen ","Xi ","Yan ","Yan ","Chuan ","Zhan ","Chun ","Yu ","He ","Zha ","Wo ","Pian ","Bi ","Yao ","Huo ","Xu ","Ruo ","Yang ","La ","Yan ","Ben ","Hun ","Kui ","Jie ","Kui ","Si ","Feng ","Xie ","Tuo ","Zhi ","Jian ","Mu ","Mao ","Chu ","Hu ","Hu ","Lian ","Leng ","Ting ","Nan ","Yu ","You ","Mei ","Song ","Xuan ","Xuan ","Ying ","Zhen ","Pian ","Ye ","Ji ","Jie ","Ye ","Chu ","Shun ","Yu ","Cou ","Wei ","Mei ","Di ","Ji ","Jie ","Kai ","Qiu ","Ying ","Rou ","Heng ","Lou ","Le ","Hazou ","Katsura ","Pin ","Muro ","Gai ","Tan ","Lan ","Yun ","Yu ","Chen ","Lu ","Ju ","Sakaki ","[?] ","Pi ","Xie ","Jia ","Yi ","Zhan ","Fu ","Nai ","Mi ","Lang ","Rong ","Gu ","Jian ","Ju ","Ta ","Yao ","Zhen ","Bang ","Sha ","Yuan ","Zi ","Ming ","Su ","Jia ","Yao ","Jie ","Huang ","Gan ","Fei ","Zha ","Qian ","Ma ","Sun ","Yuan ","Xie ","Rong ","Shi ","Zhi ","Cui ","Yun ","Ting ","Liu ","Rong ","Tang ","Que ","Zhai ","Si ","Sheng ","Ta ","Ke ","Xi ","Gu ","Qi ","Kao ","Gao ","Sun ","Pan ","Tao ","Ge ","Xun ","Dian ","Nou ","Ji ","Shuo ","Gou ","Chui ","Qiang ","Cha ","Qian ","Huai ","Mei ","Xu ","Gang ","Gao ","Zhuo ","Tuo ","Hashi ","Yang ","Dian ","Jia ","Jian ","Zui ","Kashi ","Ori ","Bin ","Zhu ","[?] ","Xi ","Qi ","Lian ","Hui ","Yong ","Qian ","Guo ","Gai ","Gai ","Tuan ","Hua ","Cu ","Sen ","Cui ","Beng ","You ","Hu ","Jiang ","Hu ","Huan ","Kui ","Yi ","Nie ","Gao ","Kang ","Gui ","Gui ","Cao ","Man ","Jin "]});var IA=v((hCe,EA)=>{EA.exports=["Di ","Zhuang ","Le ","Lang ","Chen ","Cong ","Li ","Xiu ","Qing ","Shuang ","Fan ","Tong ","Guan ","Ji ","Suo ","Lei ","Lu ","Liang ","Mi ","Lou ","Chao ","Su ","Ke ","Shu ","Tang ","Biao ","Lu ","Jiu ","Shu ","Zha ","Shu ","Zhang ","Men ","Mo ","Niao ","Yang ","Tiao ","Peng ","Zhu ","Sha ","Xi ","Quan ","Heng ","Jian ","Cong ","[?] ","Hokuso ","Qiang ","Tara ","Ying ","Er ","Xin ","Zhi ","Qiao ","Zui ","Cong ","Pu ","Shu ","Hua ","Kui ","Zhen ","Zun ","Yue ","Zhan ","Xi ","Xun ","Dian ","Fa ","Gan ","Mo ","Wu ","Qiao ","Nao ","Lin ","Liu ","Qiao ","Xian ","Run ","Fan ","Zhan ","Tuo ","Lao ","Yun ","Shun ","Tui ","Cheng ","Tang ","Meng ","Ju ","Cheng ","Su ","Jue ","Jue ","Tan ","Hui ","Ji ","Nuo ","Xiang ","Tuo ","Ning ","Rui ","Zhu ","Chuang ","Zeng ","Fen ","Qiong ","Ran ","Heng ","Cen ","Gu ","Liu ","Lao ","Gao ","Chu ","Zusa ","Nude ","Ca ","San ","Ji ","Dou ","Shou ","Lu ","[?] ","[?] ","Yuan ","Ta ","Shu ","Jiang ","Tan ","Lin ","Nong ","Yin ","Xi ","Sui ","Shan ","Zui ","Xuan ","Cheng ","Gan ","Ju ","Zui ","Yi ","Qin ","Pu ","Yan ","Lei ","Feng ","Hui ","Dang ","Ji ","Sui ","Bo ","Bi ","Ding ","Chu ","Zhua ","Kuai ","Ji ","Jie ","Jia ","Qing ","Zhe ","Jian ","Qiang ","Dao ","Yi ","Biao ","Song ","She ","Lin ","Kunugi ","Cha ","Meng ","Yin ","Tao ","Tai ","Mian ","Qi ","Toan ","Bin ","Huo ","Ji ","Qian ","Mi ","Ning ","Yi ","Gao ","Jian ","Yin ","Er ","Qing ","Yan ","Qi ","Mi ","Zhao ","Gui ","Chun ","Ji ","Kui ","Po ","Deng ","Chu ","[?] ","Mian ","You ","Zhi ","Guang ","Qian ","Lei ","Lei ","Sa ","Lu ","Li ","Cuan ","Lu ","Mie ","Hui ","Ou ","Lu ","Jie ","Gao ","Du ","Yuan ","Li ","Fei ","Zhuo ","Sou ","Lian ","Tamo ","Chu ","[?] ","Zhu ","Lu ","Yan ","Li ","Zhu ","Chen ","Jie ","E ","Su ","Huai ","Nie ","Yu ","Long ","Lai ","[?] ","Xian ","Kwi ","Ju ","Xiao ","Ling ","Ying ","Jian ","Yin ","You ","Ying "]});var FA=v((gCe,LA)=>{LA.exports=["Xiang ","Nong ","Bo ","Chan ","Lan ","Ju ","Shuang ","She ","Wei ","Cong ","Quan ","Qu ","Cang ","[?] ","Yu ","Luo ","Li ","Zan ","Luan ","Dang ","Jue ","Em ","Lan ","Lan ","Zhu ","Lei ","Li ","Ba ","Nang ","Yu ","Ling ","Tsuki ","Qian ","Ci ","Huan ","Xin ","Yu ","Yu ","Qian ","Ou ","Xu ","Chao ","Chu ","Chi ","Kai ","Yi ","Jue ","Xi ","Xu ","Xia ","Yu ","Kuai ","Lang ","Kuan ","Shuo ","Xi ","Ai ","Yi ","Qi ","Hu ","Chi ","Qin ","Kuan ","Kan ","Kuan ","Kan ","Chuan ","Sha ","Gua ","Yin ","Xin ","Xie ","Yu ","Qian ","Xiao ","Yi ","Ge ","Wu ","Tan ","Jin ","Ou ","Hu ","Ti ","Huan ","Xu ","Pen ","Xi ","Xiao ","Xu ","Xi ","Sen ","Lian ","Chu ","Yi ","Kan ","Yu ","Chuo ","Huan ","Zhi ","Zheng ","Ci ","Bu ","Wu ","Qi ","Bu ","Bu ","Wai ","Ju ","Qian ","Chi ","Se ","Chi ","Se ","Zhong ","Sui ","Sui ","Li ","Cuo ","Yu ","Li ","Gui ","Dai ","Dai ","Si ","Jian ","Zhe ","Mo ","Mo ","Yao ","Mo ","Cu ","Yang ","Tian ","Sheng ","Dai ","Shang ","Xu ","Xun ","Shu ","Can ","Jue ","Piao ","Qia ","Qiu ","Su ","Qing ","Yun ","Lian ","Yi ","Fou ","Zhi ","Ye ","Can ","Hun ","Dan ","Ji ","Ye ","Zhen ","Yun ","Wen ","Chou ","Bin ","Ti ","Jin ","Shang ","Yin ","Diao ","Cu ","Hui ","Cuan ","Yi ","Dan ","Du ","Jiang ","Lian ","Bin ","Du ","Tsukusu ","Jian ","Shu ","Ou ","Duan ","Zhu ","Yin ","Qing ","Yi ","Sha ","Que ","Ke ","Yao ","Jun ","Dian ","Hui ","Hui ","Gu ","Que ","Ji ","Yi ","Ou ","Hui ","Duan ","Yi ","Xiao ","Wu ","Guan ","Mu ","Mei ","Mei ","Ai ","Zuo ","Du ","Yu ","Bi ","Bi ","Bi ","Pi ","Pi ","Bi ","Chan ","Mao ","[?] ","[?] ","Pu ","Mushiru ","Jia ","Zhan ","Sai ","Mu ","Tuo ","Xun ","Er ","Rong ","Xian ","Ju ","Mu ","Hao ","Qiu ","Dou ","Mushiru ","Tan ","Pei ","Ju ","Duo ","Cui ","Bi ","San ","[?] ","Mao ","Sui ","Yu ","Yu ","Tuo ","He ","Jian ","Ta ","San "]});var jA=v((pCe,MA)=>{MA.exports=["Lu ","Mu ","Li ","Tong ","Rong ","Chang ","Pu ","Luo ","Zhan ","Sao ","Zhan ","Meng ","Luo ","Qu ","Die ","Shi ","Di ","Min ","Jue ","Mang ","Qi ","Pie ","Nai ","Qi ","Dao ","Xian ","Chuan ","Fen ","Ri ","Nei ","[?] ","Fu ","Shen ","Dong ","Qing ","Qi ","Yin ","Xi ","Hai ","Yang ","An ","Ya ","Ke ","Qing ","Ya ","Dong ","Dan ","Lu ","Qing ","Yang ","Yun ","Yun ","Shui ","San ","Zheng ","Bing ","Yong ","Dang ","Shitamizu ","Le ","Ni ","Tun ","Fan ","Gui ","Ting ","Zhi ","Qiu ","Bin ","Ze ","Mian ","Cuan ","Hui ","Diao ","Yi ","Cha ","Zhuo ","Chuan ","Wan ","Fan ","Dai ","Xi ","Tuo ","Mang ","Qiu ","Qi ","Shan ","Pai ","Han ","Qian ","Wu ","Wu ","Xun ","Si ","Ru ","Gong ","Jiang ","Chi ","Wu ","Tsuchi ","[?] ","Tang ","Zhi ","Chi ","Qian ","Mi ","Yu ","Wang ","Qing ","Jing ","Rui ","Jun ","Hong ","Tai ","Quan ","Ji ","Bian ","Bian ","Gan ","Wen ","Zhong ","Fang ","Xiong ","Jue ","Hang ","Niou ","Qi ","Fen ","Xu ","Xu ","Qin ","Yi ","Wo ","Yun ","Yuan ","Hang ","Yan ","Chen ","Chen ","Dan ","You ","Dun ","Hu ","Huo ","Qie ","Mu ","Rou ","Mei ","Ta ","Mian ","Wu ","Chong ","Tian ","Bi ","Sha ","Zhi ","Pei ","Pan ","Zhui ","Za ","Gou ","Liu ","Mei ","Ze ","Feng ","Ou ","Li ","Lun ","Cang ","Feng ","Wei ","Hu ","Mo ","Mei ","Shu ","Ju ","Zan ","Tuo ","Tuo ","Tuo ","He ","Li ","Mi ","Yi ","Fa ","Fei ","You ","Tian ","Zhi ","Zhao ","Gu ","Zhan ","Yan ","Si ","Kuang ","Jiong ","Ju ","Xie ","Qiu ","Yi ","Jia ","Zhong ","Quan ","Bo ","Hui ","Mi ","Ben ","Zhuo ","Chu ","Le ","You ","Gu ","Hong ","Gan ","Fa ","Mao ","Si ","Hu ","Ping ","Ci ","Fan ","Chi ","Su ","Ning ","Cheng ","Ling ","Pao ","Bo ","Qi ","Si ","Ni ","Ju ","Yue ","Zhu ","Sheng ","Lei ","Xuan ","Xue ","Fu ","Pan ","Min ","Tai ","Yang ","Ji ","Yong ","Guan ","Beng ","Xue ","Long ","Lu ","[?] ","Bo ","Xie ","Po ","Ze ","Jing ","Yin "]});var AA=v((fCe,OA)=>{OA.exports=["Zhou ","Ji ","Yi ","Hui ","Hui ","Zui ","Cheng ","Yin ","Wei ","Hou ","Jian ","Yang ","Lie ","Si ","Ji ","Er ","Xing ","Fu ","Sa ","Suo ","Zhi ","Yin ","Wu ","Xi ","Kao ","Zhu ","Jiang ","Luo ","[?] ","An ","Dong ","Yi ","Mou ","Lei ","Yi ","Mi ","Quan ","Jin ","Mo ","Wei ","Xiao ","Xie ","Hong ","Xu ","Shuo ","Kuang ","Tao ","Qie ","Ju ","Er ","Zhou ","Ru ","Ping ","Xun ","Xiong ","Zhi ","Guang ","Huan ","Ming ","Huo ","Wa ","Qia ","Pai ","Wu ","Qu ","Liu ","Yi ","Jia ","Jing ","Qian ","Jiang ","Jiao ","Cheng ","Shi ","Zhuo ","Ce ","Pal ","Kuai ","Ji ","Liu ","Chan ","Hun ","Hu ","Nong ","Xun ","Jin ","Lie ","Qiu ","Wei ","Zhe ","Jun ","Han ","Bang ","Mang ","Zhuo ","You ","Xi ","Bo ","Dou ","Wan ","Hong ","Yi ","Pu ","Ying ","Lan ","Hao ","Lang ","Han ","Li ","Geng ","Fu ","Wu ","Lian ","Chun ","Feng ","Yi ","Yu ","Tong ","Lao ","Hai ","Jin ","Jia ","Chong ","Weng ","Mei ","Sui ","Cheng ","Pei ","Xian ","Shen ","Tu ","Kun ","Pin ","Nie ","Han ","Jing ","Xiao ","She ","Nian ","Tu ","Yong ","Xiao ","Xian ","Ting ","E ","Su ","Tun ","Juan ","Cen ","Ti ","Li ","Shui ","Si ","Lei ","Shui ","Tao ","Du ","Lao ","Lai ","Lian ","Wei ","Wo ","Yun ","Huan ","Di ","[?] ","Run ","Jian ","Zhang ","Se ","Fu ","Guan ","Xing ","Shou ","Shuan ","Ya ","Chuo ","Zhang ","Ye ","Kong ","Wo ","Han ","Tuo ","Dong ","He ","Wo ","Ju ","Gan ","Liang ","Hun ","Ta ","Zhuo ","Dian ","Qie ","De ","Juan ","Zi ","Xi ","Yao ","Qi ","Gu ","Guo ","Han ","Lin ","Tang ","Zhou ","Peng ","Hao ","Chang ","Shu ","Qi ","Fang ","Chi ","Lu ","Nao ","Ju ","Tao ","Cong ","Lei ","Zhi ","Peng ","Fei ","Song ","Tian ","Pi ","Dan ","Yu ","Ni ","Yu ","Lu ","Gan ","Mi ","Jing ","Ling ","Lun ","Yin ","Cui ","Qu ","Huai ","Yu ","Nian ","Shen ","Piao ","Chun ","Wa ","Yuan ","Lai ","Hun ","Qing ","Yan ","Qian ","Tian ","Miao ","Zhi ","Yin ","Mi "]});var HA=v((mCe,NA)=>{NA.exports=["Ben ","Yuan ","Wen ","Re ","Fei ","Qing ","Yuan ","Ke ","Ji ","She ","Yuan ","Shibui ","Lu ","Zi ","Du ","[?] ","Jian ","Min ","Pi ","Tani ","Yu ","Yuan ","Shen ","Shen ","Rou ","Huan ","Zhu ","Jian ","Nuan ","Yu ","Qiu ","Ting ","Qu ","Du ","Feng ","Zha ","Bo ","Wo ","Wo ","Di ","Wei ","Wen ","Ru ","Xie ","Ce ","Wei ","Ge ","Gang ","Yan ","Hong ","Xuan ","Mi ","Ke ","Mao ","Ying ","Yan ","You ","Hong ","Miao ","Xing ","Mei ","Zai ","Hun ","Nai ","Kui ","Shi ","E ","Pai ","Mei ","Lian ","Qi ","Qi ","Mei ","Tian ","Cou ","Wei ","Can ","Tuan ","Mian ","Hui ","Mo ","Xu ","Ji ","Pen ","Jian ","Jian ","Hu ","Feng ","Xiang ","Yi ","Yin ","Zhan ","Shi ","Jie ","Cheng ","Huang ","Tan ","Yu ","Bi ","Min ","Shi ","Tu ","Sheng ","Yong ","Qu ","Zhong ","Suei ","Jiu ","Jiao ","Qiou ","Yin ","Tang ","Long ","Huo ","Yuan ","Nan ","Ban ","You ","Quan ","Chui ","Liang ","Chan ","Yan ","Chun ","Nie ","Zi ","Wan ","Shi ","Man ","Ying ","Ratsu ","Kui ","[?] ","Jian ","Xu ","Lu ","Gui ","Gai ","[?] ","[?] ","Po ","Jin ","Gui ","Tang ","Yuan ","Suo ","Yuan ","Lian ","Yao ","Meng ","Zhun ","Sheng ","Ke ","Tai ","Da ","Wa ","Liu ","Gou ","Sao ","Ming ","Zha ","Shi ","Yi ","Lun ","Ma ","Pu ","Wei ","Li ","Cai ","Wu ","Xi ","Wen ","Qiang ","Ze ","Shi ","Su ","Yi ","Zhen ","Sou ","Yun ","Xiu ","Yin ","Rong ","Hun ","Su ","Su ","Ni ","Ta ","Shi ","Ru ","Wei ","Pan ","Chu ","Chu ","Pang ","Weng ","Cang ","Mie ","He ","Dian ","Hao ","Huang ","Xi ","Zi ","Di ","Zhi ","Ying ","Fu ","Jie ","Hua ","Ge ","Zi ","Tao ","Teng ","Sui ","Bi ","Jiao ","Hui ","Gun ","Yin ","Gao ","Long ","Zhi ","Yan ","She ","Man ","Ying ","Chun ","Lu ","Lan ","Luan ","[?] ","Bin ","Tan ","Yu ","Sou ","Hu ","Bi ","Biao ","Zhi ","Jiang ","Kou ","Shen ","Shang ","Di ","Mi ","Ao ","Lu ","Hu ","Hu ","You ","Chan ","Fan ","Yong ","Gun ","Man "]});var qA=v((bCe,BA)=>{BA.exports=["Qing ","Yu ","Piao ","Ji ","Ya ","Jiao ","Qi ","Xi ","Ji ","Lu ","Lu ","Long ","Jin ","Guo ","Cong ","Lou ","Zhi ","Gai ","Qiang ","Li ","Yan ","Cao ","Jiao ","Cong ","Qun ","Tuan ","Ou ","Teng ","Ye ","Xi ","Mi ","Tang ","Mo ","Shang ","Han ","Lian ","Lan ","Wa ","Li ","Qian ","Feng ","Xuan ","Yi ","Man ","Zi ","Mang ","Kang ","Lei ","Peng ","Shu ","Zhang ","Zhang ","Chong ","Xu ","Huan ","Kuo ","Jian ","Yan ","Chuang ","Liao ","Cui ","Ti ","Yang ","Jiang ","Cong ","Ying ","Hong ","Xun ","Shu ","Guan ","Ying ","Xiao ","[?] ","[?] ","Xu ","Lian ","Zhi ","Wei ","Pi ","Jue ","Jiao ","Po ","Dang ","Hui ","Jie ","Wu ","Pa ","Ji ","Pan ","Gui ","Xiao ","Qian ","Qian ","Xi ","Lu ","Xi ","Xuan ","Dun ","Huang ","Min ","Run ","Su ","Liao ","Zhen ","Zhong ","Yi ","Di ","Wan ","Dan ","Tan ","Chao ","Xun ","Kui ","Yie ","Shao ","Tu ","Zhu ","San ","Hei ","Bi ","Shan ","Chan ","Chan ","Shu ","Tong ","Pu ","Lin ","Wei ","Se ","Se ","Cheng ","Jiong ","Cheng ","Hua ","Jiao ","Lao ","Che ","Gan ","Cun ","Heng ","Si ","Shu ","Peng ","Han ","Yun ","Liu ","Hong ","Fu ","Hao ","He ","Xian ","Jian ","Shan ","Xi ","Oki ","[?] ","Lan ","[?] ","Yu ","Lin ","Min ","Zao ","Dang ","Wan ","Ze ","Xie ","Yu ","Li ","Shi ","Xue ","Ling ","Man ","Zi ","Yong ","Kuai ","Can ","Lian ","Dian ","Ye ","Ao ","Huan ","Zhen ","Chan ","Man ","Dan ","Dan ","Yi ","Sui ","Pi ","Ju ","Ta ","Qin ","Ji ","Zhuo ","Lian ","Nong ","Guo ","Jin ","Fen ","Se ","Ji ","Sui ","Hui ","Chu ","Ta ","Song ","Ding ","[?] ","Zhu ","Lai ","Bin ","Lian ","Mi ","Shi ","Shu ","Mi ","Ning ","Ying ","Ying ","Meng ","Jin ","Qi ","Pi ","Ji ","Hao ","Ru ","Zui ","Wo ","Tao ","Yin ","Yin ","Dui ","Ci ","Huo ","Jing ","Lan ","Jun ","Ai ","Pu ","Zhuo ","Wei ","Bin ","Gu ","Qian ","Xing ","Hama ","Kuo ","Fei ","[?] ","Boku ","Jian ","Wei ","Luo ","Zan ","Lu ","Li "]});var YA=v((yCe,WA)=>{WA.exports=["You ","Yang ","Lu ","Si ","Jie ","Ying ","Du ","Wang ","Hui ","Xie ","Pan ","Shen ","Biao ","Chan ","Mo ","Liu ","Jian ","Pu ","Se ","Cheng ","Gu ","Bin ","Huo ","Xian ","Lu ","Qin ","Han ","Ying ","Yong ","Li ","Jing ","Xiao ","Ying ","Sui ","Wei ","Xie ","Huai ","Hao ","Zhu ","Long ","Lai ","Dui ","Fan ","Hu ","Lai ","[?] ","[?] ","Ying ","Mi ","Ji ","Lian ","Jian ","Ying ","Fen ","Lin ","Yi ","Jian ","Yue ","Chan ","Dai ","Rang ","Jian ","Lan ","Fan ","Shuang ","Yuan ","Zhuo ","Feng ","She ","Lei ","Lan ","Cong ","Qu ","Yong ","Qian ","Fa ","Guan ","Que ","Yan ","Hao ","Hyeng ","Sa ","Zan ","Luan ","Yan ","Li ","Mi ","Shan ","Tan ","Dang ","Jiao ","Chan ","[?] ","Hao ","Ba ","Zhu ","Lan ","Lan ","Nang ","Wan ","Luan ","Xun ","Xian ","Yan ","Gan ","Yan ","Yu ","Huo ","Si ","Mie ","Guang ","Deng ","Hui ","Xiao ","Xiao ","Hu ","Hong ","Ling ","Zao ","Zhuan ","Jiu ","Zha ","Xie ","Chi ","Zhuo ","Zai ","Zai ","Can ","Yang ","Qi ","Zhong ","Fen ","Niu ","Jiong ","Wen ","Po ","Yi ","Lu ","Chui ","Pi ","Kai ","Pan ","Yan ","Kai ","Pang ","Mu ","Chao ","Liao ","Gui ","Kang ","Tun ","Guang ","Xin ","Zhi ","Guang ","Guang ","Wei ","Qiang ","[?] ","Da ","Xia ","Zheng ","Zhu ","Ke ","Zhao ","Fu ","Ba ","Duo ","Duo ","Ling ","Zhuo ","Xuan ","Ju ","Tan ","Pao ","Jiong ","Pao ","Tai ","Tai ","Bing ","Yang ","Tong ","Han ","Zhu ","Zha ","Dian ","Wei ","Shi ","Lian ","Chi ","Huang ","[?] ","Hu ","Shuo ","Lan ","Jing ","Jiao ","Xu ","Xing ","Quan ","Lie ","Huan ","Yang ","Xiao ","Xiu ","Xian ","Yin ","Wu ","Zhou ","Yao ","Shi ","Wei ","Tong ","Xue ","Zai ","Kai ","Hong ","Luo ","Xia ","Zhu ","Xuan ","Zheng ","Po ","Yan ","Hui ","Guang ","Zhe ","Hui ","Kao ","[?] ","Fan ","Shao ","Ye ","Hui ","[?] ","Tang ","Jin ","Re ","[?] ","Xi ","Fu ","Jiong ","Che ","Pu ","Jing ","Zhuo ","Ting ","Wan ","Hai ","Peng ","Lang ","Shan ","Hu ","Feng ","Chi ","Rong "]});var JA=v((vCe,ZA)=>{ZA.exports=["Hu ","Xi ","Shu ","He ","Xun ","Ku ","Jue ","Xiao ","Xi ","Yan ","Han ","Zhuang ","Jun ","Di ","Xie ","Ji ","Wu ","[?] ","[?] ","Han ","Yan ","Huan ","Men ","Ju ","Chou ","Bei ","Fen ","Lin ","Kun ","Hun ","Tun ","Xi ","Cui ","Wu ","Hong ","Ju ","Fu ","Wo ","Jiao ","Cong ","Feng ","Ping ","Qiong ","Ruo ","Xi ","Qiong ","Xin ","Zhuo ","Yan ","Yan ","Yi ","Jue ","Yu ","Gang ","Ran ","Pi ","Gu ","[?] ","Sheng ","Chang ","Shao ","[?] ","[?] ","[?] ","[?] ","Chen ","He ","Kui ","Zhong ","Duan ","Xia ","Hui ","Feng ","Lian ","Xuan ","Xing ","Huang ","Jiao ","Jian ","Bi ","Ying ","Zhu ","Wei ","Tuan ","Tian ","Xi ","Nuan ","Nuan ","Chan ","Yan ","Jiong ","Jiong ","Yu ","Mei ","Sha ","Wei ","Ye ","Xin ","Qiong ","Rou ","Mei ","Huan ","Xu ","Zhao ","Wei ","Fan ","Qiu ","Sui ","Yang ","Lie ","Zhu ","Jie ","Gao ","Gua ","Bao ","Hu ","Yun ","Xia ","[?] ","[?] ","Bian ","Gou ","Tui ","Tang ","Chao ","Shan ","N ","Bo ","Huang ","Xie ","Xi ","Wu ","Xi ","Yun ","He ","He ","Xi ","Yun ","Xiong ","Nai ","Shan ","Qiong ","Yao ","Xun ","Mi ","Lian ","Ying ","Wen ","Rong ","Oozutsu ","[?] ","Qiang ","Liu ","Xi ","Bi ","Biao ","Zong ","Lu ","Jian ","Shou ","Yi ","Lou ","Feng ","Sui ","Yi ","Tong ","Jue ","Zong ","Yun ","Hu ","Yi ","Zhi ","Ao ","Wei ","Liao ","Han ","Ou ","Re ","Jiong ","Man ","[?] ","Shang ","Cuan ","Zeng ","Jian ","Xi ","Xi ","Xi ","Yi ","Xiao ","Chi ","Huang ","Chan ","Ye ","Qian ","Ran ","Yan ","Xian ","Qiao ","Zun ","Deng ","Dun ","Shen ","Jiao ","Fen ","Si ","Liao ","Yu ","Lin ","Tong ","Shao ","Fen ","Fan ","Yan ","Xun ","Lan ","Mei ","Tang ","Yi ","Jing ","Men ","[?] ","[?] ","Ying ","Yu ","Yi ","Xue ","Lan ","Tai ","Zao ","Can ","Sui ","Xi ","Que ","Cong ","Lian ","Hui ","Zhu ","Xie ","Ling ","Wei ","Yi ","Xie ","Zhao ","Hui ","Tatsu ","Nung ","Lan ","Ru ","Xian ","Kao ","Xun ","Jin ","Chou ","Chou ","Yao "]});var $A=v((wCe,UA)=>{UA.exports=["He ","Lan ","Biao ","Rong ","Li ","Mo ","Bao ","Ruo ","Lu ","La ","Ao ","Xun ","Kuang ","Shuo ","[?] ","Li ","Lu ","Jue ","Liao ","Yan ","Xi ","Xie ","Long ","Ye ","[?] ","Rang ","Yue ","Lan ","Cong ","Jue ","Tong ","Guan ","[?] ","Che ","Mi ","Tang ","Lan ","Zhu ","[?] ","Ling ","Cuan ","Yu ","Zhua ","Tsumekanmuri ","Pa ","Zheng ","Pao ","Cheng ","Yuan ","Ai ","Wei ","[?] ","Jue ","Jue ","Fu ","Ye ","Ba ","Die ","Ye ","Yao ","Zu ","Shuang ","Er ","Qiang ","Chuang ","Ge ","Zang ","Die ","Qiang ","Yong ","Qiang ","Pian ","Ban ","Pan ","Shao ","Jian ","Pai ","Du ","Chuang ","Tou ","Zha ","Bian ","Die ","Bang ","Bo ","Chuang ","You ","[?] ","Du ","Ya ","Cheng ","Niu ","Ushihen ","Pin ","Jiu ","Mou ","Tuo ","Mu ","Lao ","Ren ","Mang ","Fang ","Mao ","Mu ","Gang ","Wu ","Yan ","Ge ","Bei ","Si ","Jian ","Gu ","You ","Ge ","Sheng ","Mu ","Di ","Qian ","Quan ","Quan ","Zi ","Te ","Xi ","Mang ","Keng ","Qian ","Wu ","Gu ","Xi ","Li ","Li ","Pou ","Ji ","Gang ","Zhi ","Ben ","Quan ","Run ","Du ","Ju ","Jia ","Jian ","Feng ","Pian ","Ke ","Ju ","Kao ","Chu ","Xi ","Bei ","Luo ","Jie ","Ma ","San ","Wei ","Li ","Dun ","Tong ","[?] ","Jiang ","Ikenie ","Li ","Du ","Lie ","Pi ","Piao ","Bao ","Xi ","Chou ","Wei ","Kui ","Chou ","Quan ","Fan ","Ba ","Fan ","Qiu ","Ji ","Cai ","Chuo ","An ","Jie ","Zhuang ","Guang ","Ma ","You ","Kang ","Bo ","Hou ","Ya ","Yin ","Huan ","Zhuang ","Yun ","Kuang ","Niu ","Di ","Qing ","Zhong ","Mu ","Bei ","Pi ","Ju ","Ni ","Sheng ","Pao ","Xia ","Tuo ","Hu ","Ling ","Fei ","Pi ","Ni ","Ao ","You ","Gou ","Yue ","Ju ","Dan ","Po ","Gu ","Xian ","Ning ","Huan ","Hen ","Jiao ","He ","Zhao ","Ji ","Xun ","Shan ","Ta ","Rong ","Shou ","Tong ","Lao ","Du ","Xia ","Shi ","Hua ","Zheng ","Yu ","Sun ","Yu ","Bi ","Mang ","Xi ","Juan ","Li ","Xia ","Yin ","Suan ","Lang ","Bei ","Zhi ","Yan "]});var GA=v((xCe,XA)=>{XA.exports=["Sha ","Li ","Han ","Xian ","Jing ","Pai ","Fei ","Yao ","Ba ","Qi ","Ni ","Biao ","Yin ","Lai ","Xi ","Jian ","Qiang ","Kun ","Yan ","Guo ","Zong ","Mi ","Chang ","Yi ","Zhi ","Zheng ","Ya ","Meng ","Cai ","Cu ","She ","Kari ","Cen ","Luo ","Hu ","Zong ","Ji ","Wei ","Feng ","Wo ","Yuan ","Xing ","Zhu ","Mao ","Wei ","Yuan ","Xian ","Tuan ","Ya ","Nao ","Xie ","Jia ","Hou ","Bian ","You ","You ","Mei ","Zha ","Yao ","Sun ","Bo ","Ming ","Hua ","Yuan ","Sou ","Ma ","Yuan ","Dai ","Yu ","Shi ","Hao ","[?] ","Yi ","Zhen ","Chuang ","Hao ","Man ","Jing ","Jiang ","Mu ","Zhang ","Chan ","Ao ","Ao ","Hao ","Cui ","Fen ","Jue ","Bi ","Bi ","Huang ","Pu ","Lin ","Yu ","Tong ","Yao ","Liao ","Shuo ","Xiao ","Swu ","Ton ","Xi ","Ge ","Juan ","Du ","Hui ","Kuai ","Xian ","Xie ","Ta ","Xian ","Xun ","Ning ","Pin ","Huo ","Nou ","Meng ","Lie ","Nao ","Guang ","Shou ","Lu ","Ta ","Xian ","Mi ","Rang ","Huan ","Nao ","Luo ","Xian ","Qi ","Jue ","Xuan ","Miao ","Zi ","Lu ","Lu ","Yu ","Su ","Wang ","Qiu ","Ga ","Ding ","Le ","Ba ","Ji ","Hong ","Di ","Quan ","Gan ","Jiu ","Yu ","Ji ","Yu ","Yang ","Ma ","Gong ","Wu ","Fu ","Wen ","Jie ","Ya ","Fen ","Bian ","Beng ","Yue ","Jue ","Yun ","Jue ","Wan ","Jian ","Mei ","Dan ","Pi ","Wei ","Huan ","Xian ","Qiang ","Ling ","Dai ","Yi ","An ","Ping ","Dian ","Fu ","Xuan ","Xi ","Bo ","Ci ","Gou ","Jia ","Shao ","Po ","Ci ","Ke ","Ran ","Sheng ","Shen ","Yi ","Zu ","Jia ","Min ","Shan ","Liu ","Bi ","Zhen ","Zhen ","Jue ","Fa ","Long ","Jin ","Jiao ","Jian ","Li ","Guang ","Xian ","Zhou ","Gong ","Yan ","Xiu ","Yang ","Xu ","Luo ","Su ","Zhu ","Qin ","Ken ","Xun ","Bao ","Er ","Xiang ","Yao ","Xia ","Heng ","Gui ","Chong ","Xu ","Ban ","Pei ","[?] ","Dang ","Ei ","Hun ","Wen ","E ","Cheng ","Ti ","Wu ","Wu ","Cheng ","Jun ","Mei ","Bei ","Ting ","Xian ","Chuo "]});var KA=v((CCe,zA)=>{zA.exports=["Han ","Xuan ","Yan ","Qiu ","Quan ","Lang ","Li ","Xiu ","Fu ","Liu ","Ye ","Xi ","Ling ","Li ","Jin ","Lian ","Suo ","Chiisai ","[?] ","Wan ","Dian ","Pin ","Zhan ","Cui ","Min ","Yu ","Ju ","Chen ","Lai ","Wen ","Sheng ","Wei ","Dian ","Chu ","Zhuo ","Pei ","Cheng ","Hu ","Qi ","E ","Kun ","Chang ","Qi ","Beng ","Wan ","Lu ","Cong ","Guan ","Yan ","Diao ","Bei ","Lin ","Qin ","Pi ","Pa ","Que ","Zhuo ","Qin ","Fa ","[?] ","Qiong ","Du ","Jie ","Hun ","Yu ","Mao ","Mei ","Chun ","Xuan ","Ti ","Xing ","Dai ","Rou ","Min ","Zhen ","Wei ","Ruan ","Huan ","Jie ","Chuan ","Jian ","Zhuan ","Yang ","Lian ","Quan ","Xia ","Duan ","Yuan ","Ye ","Nao ","Hu ","Ying ","Yu ","Huang ","Rui ","Se ","Liu ","Shi ","Rong ","Suo ","Yao ","Wen ","Wu ","Jin ","Jin ","Ying ","Ma ","Tao ","Liu ","Tang ","Li ","Lang ","Gui ","Zhen ","Qiang ","Cuo ","Jue ","Zhao ","Yao ","Ai ","Bin ","Tu ","Chang ","Kun ","Zhuan ","Cong ","Jin ","Yi ","Cui ","Cong ","Qi ","Li ","Ying ","Suo ","Qiu ","Xuan ","Ao ","Lian ","Man ","Zhang ","Yin ","[?] ","Ying ","Zhi ","Lu ","Wu ","Deng ","Xiou ","Zeng ","Xun ","Qu ","Dang ","Lin ","Liao ","Qiong ","Su ","Huang ","Gui ","Pu ","Jing ","Fan ","Jin ","Liu ","Ji ","[?] ","Jing ","Ai ","Bi ","Can ","Qu ","Zao ","Dang ","Jiao ","Gun ","Tan ","Hui ","Huan ","Se ","Sui ","Tian ","[?] ","Yu ","Jin ","Lu ","Bin ","Shou ","Wen ","Zui ","Lan ","Xi ","Ji ","Xuan ","Ruan ","Huo ","Gai ","Lei ","Du ","Li ","Zhi ","Rou ","Li ","Zan ","Qiong ","Zhe ","Gui ","Sui ","La ","Long ","Lu ","Li ","Zan ","Lan ","Ying ","Mi ","Xiang ","Xi ","Guan ","Dao ","Zan ","Huan ","Gua ","Bo ","Die ","Bao ","Hu ","Zhi ","Piao ","Ban ","Rang ","Li ","Wa ","Dekaguramu ","Jiang ","Qian ","Fan ","Pen ","Fang ","Dan ","Weng ","Ou ","Deshiguramu ","Miriguramu ","Thon ","Hu ","Ling ","Yi ","Ping ","Ci ","Hekutogura ","Juan ","Chang ","Chi ","Sarake ","Dang ","Meng ","Pou "]});var VA=v((SCe,QA)=>{QA.exports=["Zhui ","Ping ","Bian ","Zhou ","Zhen ","Senchigura ","Ci ","Ying ","Qi ","Xian ","Lou ","Di ","Ou ","Meng ","Zhuan ","Peng ","Lin ","Zeng ","Wu ","Pi ","Dan ","Weng ","Ying ","Yan ","Gan ","Dai ","Shen ","Tian ","Tian ","Han ","Chang ","Sheng ","Qing ","Sheng ","Chan ","Chan ","Rui ","Sheng ","Su ","Sen ","Yong ","Shuai ","Lu ","Fu ","Yong ","Beng ","Feng ","Ning ","Tian ","You ","Jia ","Shen ","Zha ","Dian ","Fu ","Nan ","Dian ","Ping ","Ting ","Hua ","Ting ","Quan ","Zi ","Meng ","Bi ","Qi ","Liu ","Xun ","Liu ","Chang ","Mu ","Yun ","Fan ","Fu ","Geng ","Tian ","Jie ","Jie ","Quan ","Wei ","Fu ","Tian ","Mu ","Tap ","Pan ","Jiang ","Wa ","Da ","Nan ","Liu ","Ben ","Zhen ","Chu ","Mu ","Mu ","Ce ","Cen ","Gai ","Bi ","Da ","Zhi ","Lue ","Qi ","Lue ","Pan ","Kesa ","Fan ","Hua ","Yu ","Yu ","Mu ","Jun ","Yi ","Liu ","Yu ","Die ","Chou ","Hua ","Dang ","Chuo ","Ji ","Wan ","Jiang ","Sheng ","Chang ","Tuan ","Lei ","Ji ","Cha ","Liu ","Tatamu ","Tuan ","Lin ","Jiang ","Jiang ","Chou ","Bo ","Die ","Die ","Pi ","Nie ","Dan ","Shu ","Shu ","Zhi ","Yi ","Chuang ","Nai ","Ding ","Bi ","Jie ","Liao ","Gong ","Ge ","Jiu ","Zhou ","Xia ","Shan ","Xu ","Nue ","Li ","Yang ","Chen ","You ","Ba ","Jie ","Jue ","Zhi ","Xia ","Cui ","Bi ","Yi ","Li ","Zong ","Chuang ","Feng ","Zhu ","Pao ","Pi ","Gan ","Ke ","Ci ","Xie ","Qi ","Dan ","Zhen ","Fa ","Zhi ","Teng ","Ju ","Ji ","Fei ","Qu ","Dian ","Jia ","Xian ","Cha ","Bing ","Ni ","Zheng ","Yong ","Jing ","Quan ","Chong ","Tong ","Yi ","Kai ","Wei ","Hui ","Duo ","Yang ","Chi ","Zhi ","Hen ","Ya ","Mei ","Dou ","Jing ","Xiao ","Tong ","Tu ","Mang ","Pi ","Xiao ","Suan ","Pu ","Li ","Zhi ","Cuo ","Duo ","Wu ","Sha ","Lao ","Shou ","Huan ","Xian ","Yi ","Peng ","Zhang ","Guan ","Tan ","Fei ","Ma ","Lin ","Chi ","Ji ","Dian ","An ","Chi ","Bi ","Bei ","Min ","Gu ","Dui ","E ","Wei "]});var tN=v((DCe,eN)=>{eN.exports=["Yu ","Cui ","Ya ","Zhu ","Cu ","Dan ","Shen ","Zhung ","Ji ","Yu ","Hou ","Feng ","La ","Yang ","Shen ","Tu ","Yu ","Gua ","Wen ","Huan ","Ku ","Jia ","Yin ","Yi ","Lu ","Sao ","Jue ","Chi ","Xi ","Guan ","Yi ","Wen ","Ji ","Chuang ","Ban ","Lei ","Liu ","Chai ","Shou ","Nue ","Dian ","Da ","Pie ","Tan ","Zhang ","Biao ","Shen ","Cu ","Luo ","Yi ","Zong ","Chou ","Zhang ","Zhai ","Sou ","Suo ","Que ","Diao ","Lou ","Lu ","Mo ","Jin ","Yin ","Ying ","Huang ","Fu ","Liao ","Long ","Qiao ","Liu ","Lao ","Xian ","Fei ","Dan ","Yin ","He ","Yan ","Ban ","Xian ","Guan ","Guai ","Nong ","Yu ","Wei ","Yi ","Yong ","Pi ","Lei ","Li ","Shu ","Dan ","Lin ","Dian ","Lin ","Lai ","Pie ","Ji ","Chi ","Yang ","Xian ","Jie ","Zheng ","[?] ","Li ","Huo ","Lai ","Shaku ","Dian ","Xian ","Ying ","Yin ","Qu ","Yong ","Tan ","Dian ","Luo ","Luan ","Luan ","Bo ","[?] ","Gui ","Po ","Fa ","Deng ","Fa ","Bai ","Bai ","Qie ","Bi ","Zao ","Zao ","Mao ","De ","Pa ","Jie ","Huang ","Gui ","Ci ","Ling ","Gao ","Mo ","Ji ","Jiao ","Peng ","Gao ","Ai ","E ","Hao ","Han ","Bi ","Wan ","Chou ","Qian ","Xi ","Ai ","Jiong ","Hao ","Huang ","Hao ","Ze ","Cui ","Hao ","Xiao ","Ye ","Po ","Hao ","Jiao ","Ai ","Xing ","Huang ","Li ","Piao ","He ","Jiao ","Pi ","Gan ","Pao ","Zhou ","Jun ","Qiu ","Cun ","Que ","Zha ","Gu ","Jun ","Jun ","Zhou ","Zha ","Gu ","Zhan ","Du ","Min ","Qi ","Ying ","Yu ","Bei ","Zhao ","Zhong ","Pen ","He ","Ying ","He ","Yi ","Bo ","Wan ","He ","Ang ","Zhan ","Yan ","Jian ","He ","Yu ","Kui ","Fan ","Gai ","Dao ","Pan ","Fu ","Qiu ","Sheng ","Dao ","Lu ","Zhan ","Meng ","Li ","Jin ","Xu ","Jian ","Pan ","Guan ","An ","Lu ","Shu ","Zhou ","Dang ","An ","Gu ","Li ","Mu ","Cheng ","Gan ","Xu ","Mang ","Mang ","Zhi ","Qi ","Ruan ","Tian ","Xiang ","Dun ","Xin ","Xi ","Pan ","Feng ","Dun ","Min "]});var nN=v((TCe,iN)=>{iN.exports=["Ming ","Sheng ","Shi ","Yun ","Mian ","Pan ","Fang ","Miao ","Dan ","Mei ","Mao ","Kan ","Xian ","Ou ","Shi ","Yang ","Zheng ","Yao ","Shen ","Huo ","Da ","Zhen ","Kuang ","Ju ","Shen ","Chi ","Sheng ","Mei ","Mo ","Zhu ","Zhen ","Zhen ","Mian ","Di ","Yuan ","Die ","Yi ","Zi ","Zi ","Chao ","Zha ","Xuan ","Bing ","Mi ","Long ","Sui ","Dong ","Mi ","Die ","Yi ","Er ","Ming ","Xuan ","Chi ","Kuang ","Juan ","Mou ","Zhen ","Tiao ","Yang ","Yan ","Mo ","Zhong ","Mai ","Zhao ","Zheng ","Mei ","Jun ","Shao ","Han ","Huan ","Di ","Cheng ","Cuo ","Juan ","E ","Wan ","Xian ","Xi ","Kun ","Lai ","Jian ","Shan ","Tian ","Hun ","Wan ","Ling ","Shi ","Qiong ","Lie ","Yai ","Jing ","Zheng ","Li ","Lai ","Sui ","Juan ","Shui ","Sui ","Du ","Bi ","Bi ","Mu ","Hun ","Ni ","Lu ","Yi ","Jie ","Cai ","Zhou ","Yu ","Hun ","Ma ","Xia ","Xing ","Xi ","Gun ","Cai ","Chun ","Jian ","Mei ","Du ","Hou ","Xuan ","Ti ","Kui ","Gao ","Rui ","Mou ","Xu ","Fa ","Wen ","Miao ","Chou ","Kui ","Mi ","Weng ","Kou ","Dang ","Chen ","Ke ","Sou ","Xia ","Qiong ","Mao ","Ming ","Man ","Shui ","Ze ","Zhang ","Yi ","Diao ","Ou ","Mo ","Shun ","Cong ","Lou ","Chi ","Man ","Piao ","Cheng ","Ji ","Meng ","[?] ","Run ","Pie ","Xi ","Qiao ","Pu ","Zhu ","Deng ","Shen ","Shun ","Liao ","Che ","Xian ","Kan ","Ye ","Xu ","Tong ","Mou ","Lin ","Kui ","Xian ","Ye ","Ai ","Hui ","Zhan ","Jian ","Gu ","Zhao ","Qu ","Wei ","Chou ","Sao ","Ning ","Xun ","Yao ","Huo ","Meng ","Mian ","Bin ","Mian ","Li ","Kuang ","Jue ","Xuan ","Mian ","Huo ","Lu ","Meng ","Long ","Guan ","Man ","Xi ","Chu ","Tang ","Kan ","Zhu ","Mao ","Jin ","Lin ","Yu ","Shuo ","Ce ","Jue ","Shi ","Yi ","Shen ","Zhi ","Hou ","Shen ","Ying ","Ju ","Zhou ","Jiao ","Cuo ","Duan ","Ai ","Jiao ","Zeng ","Huo ","Bai ","Shi ","Ding ","Qi ","Ji ","Zi ","Gan ","Wu ","Tuo ","Ku ","Qiang ","Xi ","Fan ","Kuang "]});var oN=v((kCe,rN)=>{rN.exports=["Dang ","Ma ","Sha ","Dan ","Jue ","Li ","Fu ","Min ","Nuo ","Huo ","Kang ","Zhi ","Qi ","Kan ","Jie ","Fen ","E ","Ya ","Pi ","Zhe ","Yan ","Sui ","Zhuan ","Che ","Dun ","Pan ","Yan ","[?] ","Feng ","Fa ","Mo ","Zha ","Qu ","Yu ","Luo ","Tuo ","Tuo ","Di ","Zhai ","Zhen ","Ai ","Fei ","Mu ","Zhu ","Li ","Bian ","Nu ","Ping ","Peng ","Ling ","Pao ","Le ","Po ","Bo ","Po ","Shen ","Za ","Nuo ","Li ","Long ","Tong ","[?] ","Li ","Aragane ","Chu ","Keng ","Quan ","Zhu ","Kuang ","Huo ","E ","Nao ","Jia ","Lu ","Wei ","Ai ","Luo ","Ken ","Xing ","Yan ","Tong ","Peng ","Xi ","[?] ","Hong ","Shuo ","Xia ","Qiao ","[?] ","Wei ","Qiao ","[?] ","Keng ","Xiao ","Que ","Chan ","Lang ","Hong ","Yu ","Xiao ","Xia ","Mang ","Long ","Iong ","Che ","Che ","E ","Liu ","Ying ","Mang ","Que ","Yan ","Sha ","Kun ","Yu ","[?] ","Kaki ","Lu ","Chen ","Jian ","Nue ","Song ","Zhuo ","Keng ","Peng ","Yan ","Zhui ","Kong ","Ceng ","Qi ","Zong ","Qing ","Lin ","Jun ","Bo ","Ding ","Min ","Diao ","Jian ","He ","Lu ","Ai ","Sui ","Que ","Ling ","Bei ","Yin ","Dui ","Wu ","Qi ","Lun ","Wan ","Dian ","Gang ","Pei ","Qi ","Chen ","Ruan ","Yan ","Die ","Ding ","Du ","Tuo ","Jie ","Ying ","Bian ","Ke ","Bi ","Wei ","Shuo ","Zhen ","Duan ","Xia ","Dang ","Ti ","Nao ","Peng ","Jian ","Di ","Tan ","Cha ","Seki ","Qi ","[?] ","Feng ","Xuan ","Que ","Que ","Ma ","Gong ","Nian ","Su ","E ","Ci ","Liu ","Si ","Tang ","Bang ","Hua ","Pi ","Wei ","Sang ","Lei ","Cuo ","Zhen ","Xia ","Qi ","Lian ","Pan ","Wei ","Yun ","Dui ","Zhe ","Ke ","La ","[?] ","Qing ","Gun ","Zhuan ","Chan ","Qi ","Ao ","Peng ","Lu ","Lu ","Kan ","Qiang ","Chen ","Yin ","Lei ","Biao ","Qi ","Mo ","Qi ","Cui ","Zong ","Qing ","Chuo ","[?] ","Ji ","Shan ","Lao ","Qu ","Zeng ","Deng ","Jian ","Xi ","Lin ","Ding ","Dian ","Huang ","Pan ","Za ","Qiao ","Di ","Li "]});var aN=v((PCe,sN)=>{sN.exports=["Tani ","Jiao ","[?] ","Zhang ","Qiao ","Dun ","Xian ","Yu ","Zhui ","He ","Huo ","Zhai ","Lei ","Ke ","Chu ","Ji ","Que ","Dang ","Yi ","Jiang ","Pi ","Pi ","Yu ","Pin ","Qi ","Ai ","Kai ","Jian ","Yu ","Ruan ","Meng ","Pao ","Ci ","[?] ","[?] ","Mie ","Ca ","Xian ","Kuang ","Lei ","Lei ","Zhi ","Li ","Li ","Fan ","Que ","Pao ","Ying ","Li ","Long ","Long ","Mo ","Bo ","Shuang ","Guan ","Lan ","Zan ","Yan ","Shi ","Shi ","Li ","Reng ","She ","Yue ","Si ","Qi ","Ta ","Ma ","Xie ","Xian ","Xian ","Zhi ","Qi ","Zhi ","Beng ","Dui ","Zhong ","[?] ","Yi ","Shi ","You ","Zhi ","Tiao ","Fu ","Fu ","Mi ","Zu ","Zhi ","Suan ","Mei ","Zuo ","Qu ","Hu ","Zhu ","Shen ","Sui ","Ci ","Chai ","Mi ","Lu ","Yu ","Xiang ","Wu ","Tiao ","Piao ","Zhu ","Gui ","Xia ","Zhi ","Ji ","Gao ","Zhen ","Gao ","Shui ","Jin ","Chen ","Gai ","Kun ","Di ","Dao ","Huo ","Tao ","Qi ","Gu ","Guan ","Zui ","Ling ","Lu ","Bing ","Jin ","Dao ","Zhi ","Lu ","Shan ","Bei ","Zhe ","Hui ","You ","Xi ","Yin ","Zi ","Huo ","Zhen ","Fu ","Yuan ","Wu ","Xian ","Yang ","Ti ","Yi ","Mei ","Si ","Di ","[?] ","Zhuo ","Zhen ","Yong ","Ji ","Gao ","Tang ","Si ","Ma ","Ta ","[?] ","Xuan ","Qi ","Yu ","Xi ","Ji ","Si ","Chan ","Tan ","Kuai ","Sui ","Li ","Nong ","Ni ","Dao ","Li ","Rang ","Yue ","Ti ","Zan ","Lei ","Rou ","Yu ","Yu ","Chi ","Xie ","Qin ","He ","Tu ","Xiu ","Si ","Ren ","Tu ","Zi ","Cha ","Gan ","Yi ","Xian ","Bing ","Nian ","Qiu ","Qiu ","Chong ","Fen ","Hao ","Yun ","Ke ","Miao ","Zhi ","Geng ","Bi ","Zhi ","Yu ","Mi ","Ku ","Ban ","Pi ","Ni ","Li ","You ","Zu ","Pi ","Ba ","Ling ","Mo ","Cheng ","Nian ","Qin ","Yang ","Zuo ","Zhi ","Zhi ","Shu ","Ju ","Zi ","Huo ","Ji ","Cheng ","Tong ","Zhi ","Huo ","He ","Yin ","Zi ","Zhi ","Jie ","Ren ","Du ","Yi ","Zhu ","Hui ","Nong ","Fu "]});var uN=v((RCe,lN)=>{lN.exports=["Xi ","Kao ","Lang ","Fu ","Ze ","Shui ","Lu ","Kun ","Gan ","Geng ","Ti ","Cheng ","Tu ","Shao ","Shui ","Ya ","Lun ","Lu ","Gu ","Zuo ","Ren ","Zhun ","Bang ","Bai ","Ji ","Zhi ","Zhi ","Kun ","Leng ","Peng ","Ke ","Bing ","Chou ","Zu ","Yu ","Su ","Lue ","[?] ","Yi ","Xi ","Bian ","Ji ","Fu ","Bi ","Nuo ","Jie ","Zhong ","Zong ","Xu ","Cheng ","Dao ","Wen ","Lian ","Zi ","Yu ","Ji ","Xu ","Zhen ","Zhi ","Dao ","Jia ","Ji ","Gao ","Gao ","Gu ","Rong ","Sui ","You ","Ji ","Kang ","Mu ","Shan ","Men ","Zhi ","Ji ","Lu ","Su ","Ji ","Ying ","Wen ","Qiu ","Se ","[?] ","Yi ","Huang ","Qie ","Ji ","Sui ","Xiao ","Pu ","Jiao ","Zhuo ","Tong ","Sai ","Lu ","Sui ","Nong ","Se ","Hui ","Rang ","Nuo ","Yu ","Bin ","Ji ","Tui ","Wen ","Cheng ","Huo ","Gong ","Lu ","Biao ","[?] ","Rang ","Zhuo ","Li ","Zan ","Xue ","Wa ","Jiu ","Qiong ","Xi ","Qiong ","Kong ","Yu ","Sen ","Jing ","Yao ","Chuan ","Zhun ","Tu ","Lao ","Qie ","Zhai ","Yao ","Bian ","Bao ","Yao ","Bing ","Wa ","Zhu ","Jiao ","Qiao ","Diao ","Wu ","Gui ","Yao ","Zhi ","Chuang ","Yao ","Tiao ","Jiao ","Chuang ","Jiong ","Xiao ","Cheng ","Kou ","Cuan ","Wo ","Dan ","Ku ","Ke ","Zhui ","Xu ","Su ","Guan ","Kui ","Dou ","[?] ","Yin ","Wo ","Wa ","Ya ","Yu ","Ju ","Qiong ","Yao ","Yao ","Tiao ","Chao ","Yu ","Tian ","Diao ","Ju ","Liao ","Xi ","Wu ","Kui ","Chuang ","Zhao ","[?] ","Kuan ","Long ","Cheng ","Cui ","Piao ","Zao ","Cuan ","Qiao ","Qiong ","Dou ","Zao ","Long ","Qie ","Li ","Chu ","Shi ","Fou ","Qian ","Chu ","Hong ","Qi ","Qian ","Gong ","Shi ","Shu ","Miao ","Ju ","Zhan ","Zhu ","Ling ","Long ","Bing ","Jing ","Jing ","Zhang ","Yi ","Si ","Jun ","Hong ","Tong ","Song ","Jing ","Diao ","Yi ","Shu ","Jing ","Qu ","Jie ","Ping ","Duan ","Shao ","Zhuan ","Ceng ","Deng ","Cui ","Huai ","Jing ","Kan ","Jing ","Zhu ","Zhu ","Le ","Peng ","Yu ","Chi ","Gan "]});var dN=v((_Ce,cN)=>{cN.exports=["Mang ","Zhu ","Utsubo ","Du ","Ji ","Xiao ","Ba ","Suan ","Ji ","Zhen ","Zhao ","Sun ","Ya ","Zhui ","Yuan ","Hu ","Gang ","Xiao ","Cen ","Pi ","Bi ","Jian ","Yi ","Dong ","Shan ","Sheng ","Xia ","Di ","Zhu ","Na ","Chi ","Gu ","Li ","Qie ","Min ","Bao ","Tiao ","Si ","Fu ","Ce ","Ben ","Pei ","Da ","Zi ","Di ","Ling ","Ze ","Nu ","Fu ","Gou ","Fan ","Jia ","Ge ","Fan ","Shi ","Mao ","Po ","Sey ","Jian ","Qiong ","Long ","Souke ","Bian ","Luo ","Gui ","Qu ","Chi ","Yin ","Yao ","Xian ","Bi ","Qiong ","Gua ","Deng ","Jiao ","Jin ","Quan ","Sun ","Ru ","Fa ","Kuang ","Zhu ","Tong ","Ji ","Da ","Xing ","Ce ","Zhong ","Kou ","Lai ","Bi ","Shai ","Dang ","Zheng ","Ce ","Fu ","Yun ","Tu ","Pa ","Li ","Lang ","Ju ","Guan ","Jian ","Han ","Tong ","Xia ","Zhi ","Cheng ","Suan ","Shi ","Zhu ","Zuo ","Xiao ","Shao ","Ting ","Ce ","Yan ","Gao ","Kuai ","Gan ","Chou ","Kago ","Gang ","Yun ","O ","Qian ","Xiao ","Jian ","Pu ","Lai ","Zou ","Bi ","Bi ","Bi ","Ge ","Chi ","Guai ","Yu ","Jian ","Zhao ","Gu ","Chi ","Zheng ","Jing ","Sha ","Zhou ","Lu ","Bo ","Ji ","Lin ","Suan ","Jun ","Fu ","Zha ","Gu ","Kong ","Qian ","Quan ","Jun ","Chui ","Guan ","Yuan ","Ce ","Ju ","Bo ","Ze ","Qie ","Tuo ","Luo ","Dan ","Xiao ","Ruo ","Jian ","Xuan ","Bian ","Sun ","Xiang ","Xian ","Ping ","Zhen ","Sheng ","Hu ","Shi ","Zhu ","Yue ","Chun ","Lu ","Wu ","Dong ","Xiao ","Ji ","Jie ","Huang ","Xing ","Mei ","Fan ","Chui ","Zhuan ","Pian ","Feng ","Zhu ","Hong ","Qie ","Hou ","Qiu ","Miao ","Qian ","[?] ","Kui ","Sik ","Lou ","Yun ","He ","Tang ","Yue ","Chou ","Gao ","Fei ","Ruo ","Zheng ","Gou ","Nie ","Qian ","Xiao ","Cuan ","Gong ","Pang ","Du ","Li ","Bi ","Zhuo ","Chu ","Shai ","Chi ","Zhu ","Qiang ","Long ","Lan ","Jian ","Bu ","Li ","Hui ","Bi ","Di ","Cong ","Yan ","Peng ","Sen ","Zhuan ","Pai ","Piao ","Dou ","Yu ","Mie ","Zhuan "]});var gN=v((ECe,hN)=>{hN.exports=["Ze ","Xi ","Guo ","Yi ","Hu ","Chan ","Kou ","Cu ","Ping ","Chou ","Ji ","Gui ","Su ","Lou ","Zha ","Lu ","Nian ","Suo ","Cuan ","Sasara ","Suo ","Le ","Duan ","Yana ","Xiao ","Bo ","Mi ","Si ","Dang ","Liao ","Dan ","Dian ","Fu ","Jian ","Min ","Kui ","Dai ","Qiao ","Deng ","Huang ","Sun ","Lao ","Zan ","Xiao ","Du ","Shi ","Zan ","[?] ","Pai ","Hata ","Pai ","Gan ","Ju ","Du ","Lu ","Yan ","Bo ","Dang ","Sai ","Ke ","Long ","Qian ","Lian ","Bo ","Zhou ","Lai ","[?] ","Lan ","Kui ","Yu ","Yue ","Hao ","Zhen ","Tai ","Ti ","Mi ","Chou ","Ji ","[?] ","Hata ","Teng ","Zhuan ","Zhou ","Fan ","Sou ","Zhou ","Kuji ","Zhuo ","Teng ","Lu ","Lu ","Jian ","Tuo ","Ying ","Yu ","Lai ","Long ","Shinshi ","Lian ","Lan ","Qian ","Yue ","Zhong ","Qu ","Lian ","Bian ","Duan ","Zuan ","Li ","Si ","Luo ","Ying ","Yue ","Zhuo ","Xu ","Mi ","Di ","Fan ","Shen ","Zhe ","Shen ","Nu ","Xie ","Lei ","Xian ","Zi ","Ni ","Cun ","[?] ","Qian ","Kume ","Bi ","Ban ","Wu ","Sha ","Kang ","Rou ","Fen ","Bi ","Cui ","[?] ","Li ","Chi ","Nukamiso ","Ro ","Ba ","Li ","Gan ","Ju ","Po ","Mo ","Cu ","Nian ","Zhou ","Li ","Su ","Tiao ","Li ","Qi ","Su ","Hong ","Tong ","Zi ","Ce ","Yue ","Zhou ","Lin ","Zhuang ","Bai ","[?] ","Fen ","Ji ","[?] ","Sukumo ","Liang ","Xian ","Fu ","Liang ","Can ","Geng ","Li ","Yue ","Lu ","Ju ","Qi ","Cui ","Bai ","Zhang ","Lin ","Zong ","Jing ","Guo ","Kouji ","San ","San ","Tang ","Bian ","Rou ","Mian ","Hou ","Xu ","Zong ","Hu ","Jian ","Zan ","Ci ","Li ","Xie ","Fu ","Ni ","Bei ","Gu ","Xiu ","Gao ","Tang ","Qiu ","Sukumo ","Cao ","Zhuang ","Tang ","Mi ","San ","Fen ","Zao ","Kang ","Jiang ","Mo ","San ","San ","Nuo ","Xi ","Liang ","Jiang ","Kuai ","Bo ","Huan ","[?] ","Zong ","Xian ","Nuo ","Tuan ","Nie ","Li ","Zuo ","Di ","Nie ","Tiao ","Lan ","Mi ","Jiao ","Jiu ","Xi ","Gong ","Zheng ","Jiu ","You "]});var fN=v((ICe,pN)=>{pN.exports=["Ji ","Cha ","Zhou ","Xun ","Yue ","Hong ","Yu ","He ","Wan ","Ren ","Wen ","Wen ","Qiu ","Na ","Zi ","Tou ","Niu ","Fou ","Jie ","Shu ","Chun ","Pi ","Yin ","Sha ","Hong ","Zhi ","Ji ","Fen ","Yun ","Ren ","Dan ","Jin ","Su ","Fang ","Suo ","Cui ","Jiu ","Zha ","Kinu ","Jin ","Fu ","Zhi ","Ci ","Zi ","Chou ","Hong ","Zha ","Lei ","Xi ","Fu ","Xie ","Shen ","Bei ","Zhu ","Qu ","Ling ","Zhu ","Shao ","Gan ","Yang ","Fu ","Tuo ","Zhen ","Dai ","Zhuo ","Shi ","Zhong ","Xian ","Zu ","Jiong ","Ban ","Ju ","Mo ","Shu ","Zui ","Wata ","Jing ","Ren ","Heng ","Xie ","Jie ","Zhu ","Chou ","Gua ","Bai ","Jue ","Kuang ","Hu ","Ci ","Geng ","Geng ","Tao ","Xie ","Ku ","Jiao ","Quan ","Gai ","Luo ","Xuan ","Bing ","Xian ","Fu ","Gei ","Tong ","Rong ","Tiao ","Yin ","Lei ","Xie ","Quan ","Xu ","Lun ","Die ","Tong ","Si ","Jiang ","Xiang ","Hui ","Jue ","Zhi ","Jian ","Juan ","Chi ","Mian ","Zhen ","Lu ","Cheng ","Qiu ","Shu ","Bang ","Tong ","Xiao ","Wan ","Qin ","Geng ","Xiu ","Ti ","Xiu ","Xie ","Hong ","Xi ","Fu ","Ting ","Sui ","Dui ","Kun ","Fu ","Jing ","Hu ","Zhi ","Yan ","Jiong ","Feng ","Ji ","Sok ","Kase ","Zong ","Lin ","Duo ","Li ","Lu ","Liang ","Chou ","Quan ","Shao ","Qi ","Qi ","Zhun ","Qi ","Wan ","Qian ","Xian ","Shou ","Wei ","Qi ","Tao ","Wan ","Gang ","Wang ","Beng ","Zhui ","Cai ","Guo ","Cui ","Lun ","Liu ","Qi ","Zhan ","Bei ","Chuo ","Ling ","Mian ","Qi ","Qie ","Tan ","Zong ","Gun ","Zou ","Yi ","Zi ","Xing ","Liang ","Jin ","Fei ","Rui ","Min ","Yu ","Zong ","Fan ","Lu ","Xu ","Yingl ","Zhang ","Kasuri ","Xu ","Xiang ","Jian ","Ke ","Xian ","Ruan ","Mian ","Qi ","Duan ","Zhong ","Di ","Min ","Miao ","Yuan ","Xie ","Bao ","Si ","Qiu ","Bian ","Huan ","Geng ","Cong ","Mian ","Wei ","Fu ","Wei ","Yu ","Gou ","Miao ","Xie ","Lian ","Zong ","Bian ","Yun ","Yin ","Ti ","Gua ","Zhi ","Yun ","Cheng ","Chan ","Dai "]});var bN=v((LCe,mN)=>{mN.exports=["Xia ","Yuan ","Zong ","Xu ","Nawa ","Odoshi ","Geng ","Sen ","Ying ","Jin ","Yi ","Zhui ","Ni ","Bang ","Gu ","Pan ","Zhou ","Jian ","Cuo ","Quan ","Shuang ","Yun ","Xia ","Shuai ","Xi ","Rong ","Tao ","Fu ","Yun ","Zhen ","Gao ","Ru ","Hu ","Zai ","Teng ","Xian ","Su ","Zhen ","Zong ","Tao ","Horo ","Cai ","Bi ","Feng ","Cu ","Li ","Suo ","Yin ","Xi ","Zong ","Lei ","Zhuan ","Qian ","Man ","Zhi ","Lu ","Mo ","Piao ","Lian ","Mi ","Xuan ","Zong ","Ji ","Shan ","Sui ","Fan ","Shuai ","Beng ","Yi ","Sao ","Mou ","Zhou ","Qiang ","Hun ","Sem ","Xi ","Jung ","Xiu ","Ran ","Xuan ","Hui ","Qiao ","Zeng ","Zuo ","Zhi ","Shan ","San ","Lin ","Yu ","Fan ","Liao ","Chuo ","Zun ","Jian ","Rao ","Chan ","Rui ","Xiu ","Hui ","Hua ","Zuan ","Xi ","Qiang ","Un ","Da ","Sheng ","Hui ","Xi ","Se ","Jian ","Jiang ","Huan ","Zao ","Cong ","Jie ","Jiao ","Bo ","Chan ","Yi ","Nao ","Sui ","Yi ","Shai ","Xu ","Ji ","Bin ","Qian ","Lan ","Pu ","Xun ","Zuan ","Qi ","Peng ","Li ","Mo ","Lei ","Xie ","Zuan ","Kuang ","You ","Xu ","Lei ","Xian ","Chan ","Kou ","Lu ","Chan ","Ying ","Cai ","Xiang ","Xian ","Zui ","Zuan ","Luo ","Xi ","Dao ","Lan ","Lei ","Lian ","Si ","Jiu ","Yu ","Hong ","Zhou ","Xian ","He ","Yue ","Ji ","Wan ","Kuang ","Ji ","Ren ","Wei ","Yun ","Hong ","Chun ","Pi ","Sha ","Gang ","Na ","Ren ","Zong ","Lun ","Fen ","Zhi ","Wen ","Fang ","Zhu ","Yin ","Niu ","Shu ","Xian ","Gan ","Xie ","Fu ","Lian ","Zu ","Shen ","Xi ","Zhi ","Zhong ","Zhou ","Ban ","Fu ","Zhuo ","Shao ","Yi ","Jing ","Dai ","Bang ","Rong ","Jie ","Ku ","Rao ","Die ","Heng ","Hui ","Gei ","Xuan ","Jiang ","Luo ","Jue ","Jiao ","Tong ","Geng ","Xiao ","Juan ","Xiu ","Xi ","Sui ","Tao ","Ji ","Ti ","Ji ","Xu ","Ling ","[?] ","Xu ","Qi ","Fei ","Chuo ","Zhang ","Gun ","Sheng ","Wei ","Mian ","Shou ","Beng ","Chou ","Tao ","Liu ","Quan ","Zong ","Zhan ","Wan ","Lu "]});var vN=v((FCe,yN)=>{yN.exports=["Zhui ","Zi ","Ke ","Xiang ","Jian ","Mian ","Lan ","Ti ","Miao ","Qi ","Yun ","Hui ","Si ","Duo ","Duan ","Bian ","Xian ","Gou ","Zhui ","Huan ","Di ","Lu ","Bian ","Min ","Yuan ","Jin ","Fu ","Ru ","Zhen ","Feng ","Shuai ","Gao ","Chan ","Li ","Yi ","Jian ","Bin ","Piao ","Man ","Lei ","Ying ","Suo ","Mou ","Sao ","Xie ","Liao ","Shan ","Zeng ","Jiang ","Qian ","Zao ","Huan ","Jiao ","Zuan ","Fou ","Xie ","Gang ","Fou ","Que ","Fou ","Kaakeru ","Bo ","Ping ","Hou ","[?] ","Gang ","Ying ","Ying ","Qing ","Xia ","Guan ","Zun ","Tan ","Chang ","Qi ","Weng ","Ying ","Lei ","Tan ","Lu ","Guan ","Wang ","Wang ","Gang ","Wang ","Han ","[?] ","Luo ","Fu ","Mi ","Fa ","Gu ","Zhu ","Ju ","Mao ","Gu ","Min ","Gang ","Ba ","Gua ","Ti ","Juan ","Fu ","Lin ","Yan ","Zhao ","Zui ","Gua ","Zhuo ","Yu ","Zhi ","An ","Fa ","Nan ","Shu ","Si ","Pi ","Ma ","Liu ","Ba ","Fa ","Li ","Chao ","Wei ","Bi ","Ji ","Zeng ","Tong ","Liu ","Ji ","Juan ","Mi ","Zhao ","Luo ","Pi ","Ji ","Ji ","Luan ","Yang ","Mie ","Qiang ","Ta ","Mei ","Yang ","You ","You ","Fen ","Ba ","Gao ","Yang ","Gu ","Qiang ","Zang ","Gao ","Ling ","Yi ","Zhu ","Di ","Xiu ","Qian ","Yi ","Xian ","Rong ","Qun ","Qun ","Qian ","Huan ","Zui ","Xian ","Yi ","Yashinau ","Qiang ","Xian ","Yu ","Geng ","Jie ","Tang ","Yuan ","Xi ","Fan ","Shan ","Fen ","Shan ","Lian ","Lei ","Geng ","Nou ","Qiang ","Chan ","Yu ","Gong ","Yi ","Chong ","Weng ","Fen ","Hong ","Chi ","Chi ","Cui ","Fu ","Xia ","Pen ","Yi ","La ","Yi ","Pi ","Ling ","Liu ","Zhi ","Qu ","Xi ","Xie ","Xiang ","Xi ","Xi ","Qi ","Qiao ","Hui ","Hui ","Xiao ","Se ","Hong ","Jiang ","Di ","Cui ","Fei ","Tao ","Sha ","Chi ","Zhu ","Jian ","Xuan ","Shi ","Pian ","Zong ","Wan ","Hui ","Hou ","He ","He ","Han ","Ao ","Piao ","Yi ","Lian ","Qu ","[?] ","Lin ","Pen ","Qiao ","Ao ","Fan ","Yi ","Hui ","Xuan ","Dao "]});var xN=v((MCe,wN)=>{wN.exports=["Yao ","Lao ","[?] ","Kao ","Mao ","Zhe ","Qi ","Gou ","Gou ","Gou ","Die ","Die ","Er ","Shua ","Ruan ","Er ","Nai ","Zhuan ","Lei ","Ting ","Zi ","Geng ","Chao ","Hao ","Yun ","Pa ","Pi ","Chi ","Si ","Chu ","Jia ","Ju ","He ","Chu ","Lao ","Lun ","Ji ","Tang ","Ou ","Lou ","Nou ","Gou ","Pang ","Ze ","Lou ","Ji ","Lao ","Huo ","You ","Mo ","Huai ","Er ","Zhe ","Ting ","Ye ","Da ","Song ","Qin ","Yun ","Chi ","Dan ","Dan ","Hong ","Geng ","Zhi ","[?] ","Nie ","Dan ","Zhen ","Che ","Ling ","Zheng ","You ","Wa ","Liao ","Long ","Zhi ","Ning ","Tiao ","Er ","Ya ","Die ","Gua ","[?] ","Lian ","Hao ","Sheng ","Lie ","Pin ","Jing ","Ju ","Bi ","Di ","Guo ","Wen ","Xu ","Ping ","Cong ","Shikato ","[?] ","Ting ","Yu ","Cong ","Kui ","Tsuraneru ","Kui ","Cong ","Lian ","Weng ","Kui ","Lian ","Lian ","Cong ","Ao ","Sheng ","Song ","Ting ","Kui ","Nie ","Zhi ","Dan ","Ning ","Qie ","Ji ","Ting ","Ting ","Long ","Yu ","Yu ","Zhao ","Si ","Su ","Yi ","Su ","Si ","Zhao ","Zhao ","Rou ","Yi ","Le ","Ji ","Qiu ","Ken ","Cao ","Ge ","Di ","Huan ","Huang ","Yi ","Ren ","Xiao ","Ru ","Zhou ","Yuan ","Du ","Gang ","Rong ","Gan ","Cha ","Wo ","Chang ","Gu ","Zhi ","Han ","Fu ","Fei ","Fen ","Pei ","Pang ","Jian ","Fang ","Zhun ","You ","Na ","Hang ","Ken ","Ran ","Gong ","Yu ","Wen ","Yao ","Jin ","Pi ","Qian ","Xi ","Xi ","Fei ","Ken ","Jing ","Tai ","Shen ","Zhong ","Zhang ","Xie ","Shen ","Wei ","Zhou ","Die ","Dan ","Fei ","Ba ","Bo ","Qu ","Tian ","Bei ","Gua ","Tai ","Zi ","Ku ","Zhi ","Ni ","Ping ","Zi ","Fu ","Pang ","Zhen ","Xian ","Zuo ","Pei ","Jia ","Sheng ","Zhi ","Bao ","Mu ","Qu ","Hu ","Ke ","Yi ","Yin ","Xu ","Yang ","Long ","Dong ","Ka ","Lu ","Jing ","Nu ","Yan ","Pang ","Kua ","Yi ","Guang ","Gai ","Ge ","Dong ","Zhi ","Xiao ","Xiong ","Xiong ","Er ","E ","Xing ","Pian ","Neng ","Zi ","Gui "]});var SN=v((jCe,CN)=>{CN.exports=["Cheng ","Tiao ","Zhi ","Cui ","Mei ","Xie ","Cui ","Xie ","Mo ","Mai ","Ji ","Obiyaakasu ","[?] ","Kuai ","Sa ","Zang ","Qi ","Nao ","Mi ","Nong ","Luan ","Wan ","Bo ","Wen ","Guan ","Qiu ","Jiao ","Jing ","Rou ","Heng ","Cuo ","Lie ","Shan ","Ting ","Mei ","Chun ","Shen ","Xie ","De ","Zui ","Cu ","Xiu ","Xin ","Tuo ","Pao ","Cheng ","Nei ","Fu ","Dou ","Tuo ","Niao ","Noy ","Pi ","Gu ","Gua ","Li ","Lian ","Zhang ","Cui ","Jie ","Liang ","Zhou ","Pi ","Biao ","Lun ","Pian ","Guo ","Kui ","Chui ","Dan ","Tian ","Nei ","Jing ","Jie ","La ","Yi ","An ","Ren ","Shen ","Chuo ","Fu ","Fu ","Ju ","Fei ","Qiang ","Wan ","Dong ","Pi ","Guo ","Zong ","Ding ","Wu ","Mei ","Ruan ","Zhuan ","Zhi ","Cou ","Gua ","Ou ","Di ","An ","Xing ","Nao ","Yu ","Chuan ","Nan ","Yun ","Zhong ","Rou ","E ","Sai ","Tu ","Yao ","Jian ","Wei ","Jiao ","Yu ","Jia ","Duan ","Bi ","Chang ","Fu ","Xian ","Ni ","Mian ","Wa ","Teng ","Tui ","Bang ","Qian ","Lu ","Wa ","Sou ","Tang ","Su ","Zhui ","Ge ","Yi ","Bo ","Liao ","Ji ","Pi ","Xie ","Gao ","Lu ","Bin ","Ou ","Chang ","Lu ","Guo ","Pang ","Chuai ","Piao ","Jiang ","Fu ","Tang ","Mo ","Xi ","Zhuan ","Lu ","Jiao ","Ying ","Lu ","Zhi ","Tara ","Chun ","Lian ","Tong ","Peng ","Ni ","Zha ","Liao ","Cui ","Gui ","Xiao ","Teng ","Fan ","Zhi ","Jiao ","Shan ","Wu ","Cui ","Run ","Xiang ","Sui ","Fen ","Ying ","Tan ","Zhua ","Dan ","Kuai ","Nong ","Tun ","Lian ","Bi ","Yong ","Jue ","Chu ","Yi ","Juan ","La ","Lian ","Sao ","Tun ","Gu ","Qi ","Cui ","Bin ","Xun ","Ru ","Huo ","Zang ","Xian ","Biao ","Xing ","Kuan ","La ","Yan ","Lu ","Huo ","Zang ","Luo ","Qu ","Zang ","Luan ","Ni ","Zang ","Chen ","Qian ","Wo ","Guang ","Zang ","Lin ","Guang ","Zi ","Jiao ","Nie ","Chou ","Ji ","Gao ","Chou ","Mian ","Nie ","Zhi ","Zhi ","Ge ","Jian ","Die ","Zhi ","Xiu ","Tai ","Zhen ","Jiu ","Xian ","Yu ","Cha "]});var TN=v((OCe,DN)=>{DN.exports=["Yao ","Yu ","Chong ","Xi ","Xi ","Jiu ","Yu ","Yu ","Xing ","Ju ","Jiu ","Xin ","She ","She ","Yadoru ","Jiu ","Shi ","Tan ","Shu ","Shi ","Tian ","Dan ","Pu ","Pu ","Guan ","Hua ","Tan ","Chuan ","Shun ","Xia ","Wu ","Zhou ","Dao ","Gang ","Shan ","Yi ","[?] ","Pa ","Tai ","Fan ","Ban ","Chuan ","Hang ","Fang ","Ban ","Que ","Hesaki ","Zhong ","Jian ","Cang ","Ling ","Zhu ","Ze ","Duo ","Bo ","Xian ","Ge ","Chuan ","Jia ","Lu ","Hong ","Pang ","Xi ","[?] ","Fu ","Zao ","Feng ","Li ","Shao ","Yu ","Lang ","Ting ","[?] ","Wei ","Bo ","Meng ","Nian ","Ju ","Huang ","Shou ","Zong ","Bian ","Mao ","Die ","[?] ","Bang ","Cha ","Yi ","Sao ","Cang ","Cao ","Lou ","Dai ","Sori ","Yao ","Tong ","Yofune ","Dang ","Tan ","Lu ","Yi ","Jie ","Jian ","Huo ","Meng ","Qi ","Lu ","Lu ","Chan ","Shuang ","Gen ","Liang ","Jian ","Jian ","Se ","Yan ","Fu ","Ping ","Yan ","Yan ","Cao ","Cao ","Yi ","Le ","Ting ","Qiu ","Ai ","Nai ","Tiao ","Jiao ","Jie ","Peng ","Wan ","Yi ","Chai ","Mian ","Mie ","Gan ","Qian ","Yu ","Yu ","Shuo ","Qiong ","Tu ","Xia ","Qi ","Mang ","Zi ","Hui ","Sui ","Zhi ","Xiang ","Bi ","Fu ","Tun ","Wei ","Wu ","Zhi ","Qi ","Shan ","Wen ","Qian ","Ren ","Fou ","Kou ","Jie ","Lu ","Xu ","Ji ","Qin ","Qi ","Yuan ","Fen ","Ba ","Rui ","Xin ","Ji ","Hua ","Hua ","Fang ","Wu ","Jue ","Gou ","Zhi ","Yun ","Qin ","Ao ","Chu ","Mao ","Ya ","Fei ","Reng ","Hang ","Cong ","Yin ","You ","Bian ","Yi ","Susa ","Wei ","Li ","Pi ","E ","Xian ","Chang ","Cang ","Meng ","Su ","Yi ","Yuan ","Ran ","Ling ","Tai ","Tiao ","Di ","Miao ","Qiong ","Li ","Yong ","Ke ","Mu ","Pei ","Bao ","Gou ","Min ","Yi ","Yi ","Ju ","Pi ","Ruo ","Ku ","Zhu ","Ni ","Bo ","Bing ","Shan ","Qiu ","Yao ","Xian ","Ben ","Hong ","Ying ","Zha ","Dong ","Ju ","Die ","Nie ","Gan ","Hu ","Ping ","Mei ","Fu ","Sheng ","Gu ","Bi ","Wei "]});var PN=v((ACe,kN)=>{kN.exports=["Fu ","Zhuo ","Mao ","Fan ","Qie ","Mao ","Mao ","Ba ","Zi ","Mo ","Zi ","Di ","Chi ","Ji ","Jing ","Long ","[?] ","Niao ","[?] ","Xue ","Ying ","Qiong ","Ge ","Ming ","Li ","Rong ","Yin ","Gen ","Qian ","Chai ","Chen ","Yu ","Xiu ","Zi ","Lie ","Wu ","Ji ","Kui ","Ce ","Chong ","Ci ","Gou ","Guang ","Mang ","Chi ","Jiao ","Jiao ","Fu ","Yu ","Zhu ","Zi ","Jiang ","Hui ","Yin ","Cha ","Fa ","Rong ","Ru ","Chong ","Mang ","Tong ","Zhong ","[?] ","Zhu ","Xun ","Huan ","Kua ","Quan ","Gai ","Da ","Jing ","Xing ","Quan ","Cao ","Jing ","Er ","An ","Shou ","Chi ","Ren ","Jian ","Ti ","Huang ","Ping ","Li ","Jin ","Lao ","Shu ","Zhuang ","Da ","Jia ","Rao ","Bi ","Ze ","Qiao ","Hui ","Qi ","Dang ","[?] ","Rong ","Hun ","Ying ","Luo ","Ying ","Xun ","Jin ","Sun ","Yin ","Mai ","Hong ","Zhou ","Yao ","Du ","Wei ","Chu ","Dou ","Fu ","Ren ","Yin ","He ","Bi ","Bu ","Yun ","Di ","Tu ","Sui ","Sui ","Cheng ","Chen ","Wu ","Bie ","Xi ","Geng ","Li ","Fu ","Zhu ","Mo ","Li ","Zhuang ","Ji ","Duo ","Qiu ","Sha ","Suo ","Chen ","Feng ","Ju ","Mei ","Meng ","Xing ","Jing ","Che ","Xin ","Jun ","Yan ","Ting ","Diao ","Cuo ","Wan ","Han ","You ","Cuo ","Jia ","Wang ","You ","Niu ","Shao ","Xian ","Lang ","Fu ","E ","Mo ","Wen ","Jie ","Nan ","Mu ","Kan ","Lai ","Lian ","Shi ","Wo ","Usagi ","Lian ","Huo ","You ","Ying ","Ying ","Nuc ","Chun ","Mang ","Mang ","Ci ","Wan ","Jing ","Di ","Qu ","Dong ","Jian ","Zou ","Gu ","La ","Lu ","Ju ","Wei ","Jun ","Nie ","Kun ","He ","Pu ","Zi ","Gao ","Guo ","Fu ","Lun ","Chang ","Chou ","Song ","Chui ","Zhan ","Men ","Cai ","Ba ","Li ","Tu ","Bo ","Han ","Bao ","Qin ","Juan ","Xi ","Qin ","Di ","Jie ","Pu ","Dang ","Jin ","Zhao ","Tai ","Geng ","Hua ","Gu ","Ling ","Fei ","Jin ","An ","Wang ","Beng ","Zhou ","Yan ","Ju ","Jian ","Lin ","Tan ","Shu ","Tian ","Dao "]});var _N=v((NCe,RN)=>{RN.exports=["Hu ","Qi ","He ","Cui ","Tao ","Chun ","Bei ","Chang ","Huan ","Fei ","Lai ","Qi ","Meng ","Ping ","Wei ","Dan ","Sha ","Huan ","Yan ","Yi ","Tiao ","Qi ","Wan ","Ce ","Nai ","Kutabireru ","Tuo ","Jiu ","Tie ","Luo ","[?] ","[?] ","Meng ","[?] ","Yaji ","[?] ","Ying ","Ying ","Ying ","Xiao ","Sa ","Qiu ","Ke ","Xiang ","Wan ","Yu ","Yu ","Fu ","Lian ","Xuan ","Yuan ","Nan ","Ze ","Wo ","Chun ","Xiao ","Yu ","Pian ","Mao ","An ","E ","Luo ","Ying ","Huo ","Gua ","Jiang ","Mian ","Zuo ","Zuo ","Ju ","Bao ","Rou ","Xi ","Xie ","An ","Qu ","Jian ","Fu ","Lu ","Jing ","Pen ","Feng ","Hong ","Hong ","Hou ","Yan ","Tu ","Zhu ","Zi ","Xiang ","Shen ","Ge ","Jie ","Jing ","Mi ","Huang ","Shen ","Pu ","Gai ","Dong ","Zhou ","Qian ","Wei ","Bo ","Wei ","Pa ","Ji ","Hu ","Zang ","Jia ","Duan ","Yao ","Jun ","Cong ","Quan ","Wei ","Xian ","Kui ","Ting ","Hun ","Xi ","Shi ","Qi ","Lan ","Zong ","Yao ","Yuan ","Mei ","Yun ","Shu ","Di ","Zhuan ","Guan ","Sukumo ","Xue ","Chan ","Kai ","Kui ","[?] ","Jiang ","Lou ","Wei ","Pai ","[?] ","Sou ","Yin ","Shi ","Chun ","Shi ","Yun ","Zhen ","Lang ","Nu ","Meng ","He ","Que ","Suan ","Yuan ","Li ","Ju ","Xi ","Pang ","Chu ","Xu ","Tu ","Liu ","Wo ","Zhen ","Qian ","Zu ","Po ","Cuo ","Yuan ","Chu ","Yu ","Kuai ","Pan ","Pu ","Pu ","Na ","Shuo ","Xi ","Fen ","Yun ","Zheng ","Jian ","Ji ","Ruo ","Cang ","En ","Mi ","Hao ","Sun ","Zhen ","Ming ","Sou ","Xu ","Liu ","Xi ","Gu ","Lang ","Rong ","Weng ","Gai ","Cuo ","Shi ","Tang ","Luo ","Ru ","Suo ","Xian ","Bei ","Yao ","Gui ","Bi ","Zong ","Gun ","Za ","Xiu ","Ce ","Hai ","Lan ","[?] ","Ji ","Li ","Can ","Lang ","Yu ","[?] ","Ying ","Mo ","Diao ","Tiao ","Mao ","Tong ","Zhu ","Peng ","An ","Lian ","Cong ","Xi ","Ping ","Qiu ","Jin ","Chun ","Jie ","Wei ","Tui ","Cao ","Yu ","Yi ","Ji ","Liao ","Bi ","Lu ","Su "]});var IN=v((HCe,EN)=>{EN.exports=["Bu ","Zhang ","Luo ","Jiang ","Man ","Yan ","Ling ","Ji ","Piao ","Gun ","Han ","Di ","Su ","Lu ","She ","Shang ","Di ","Mie ","Xun ","Man ","Bo ","Di ","Cuo ","Zhe ","Sen ","Xuan ","Wei ","Hu ","Ao ","Mi ","Lou ","Cu ","Zhong ","Cai ","Po ","Jiang ","Mi ","Cong ","Niao ","Hui ","Jun ","Yin ","Jian ","Yan ","Shu ","Yin ","Kui ","Chen ","Hu ","Sha ","Kou ","Qian ","Ma ","Zang ","Sonoko ","Qiang ","Dou ","Lian ","Lin ","Kou ","Ai ","Bi ","Li ","Wei ","Ji ","Xun ","Sheng ","Fan ","Meng ","Ou ","Chan ","Dian ","Xun ","Jiao ","Rui ","Rui ","Lei ","Yu ","Qiao ","Chu ","Hua ","Jian ","Mai ","Yun ","Bao ","You ","Qu ","Lu ","Rao ","Hui ","E ","Teng ","Fei ","Jue ","Zui ","Fa ","Ru ","Fen ","Kui ","Shun ","Rui ","Ya ","Xu ","Fu ","Jue ","Dang ","Wu ","Tong ","Si ","Xiao ","Xi ","Long ","Yun ","[?] ","Qi ","Jian ","Yun ","Sun ","Ling ","Yu ","Xia ","Yong ","Ji ","Hong ","Si ","Nong ","Lei ","Xuan ","Yun ","Yu ","Xi ","Hao ","Bo ","Hao ","Ai ","Wei ","Hui ","Wei ","Ji ","Ci ","Xiang ","Luan ","Mie ","Yi ","Leng ","Jiang ","Can ","Shen ","Qiang ","Lian ","Ke ","Yuan ","Da ","Ti ","Tang ","Xie ","Bi ","Zhan ","Sun ","Lian ","Fan ","Ding ","Jie ","Gu ","Xie ","Shu ","Jian ","Kao ","Hong ","Sa ","Xin ","Xun ","Yao ","Hie ","Sou ","Shu ","Xun ","Dui ","Pin ","Wei ","Neng ","Chou ","Mai ","Ru ","Piao ","Tai ","Qi ","Zao ","Chen ","Zhen ","Er ","Ni ","Ying ","Gao ","Cong ","Xiao ","Qi ","Fa ","Jian ","Xu ","Kui ","Jie ","Bian ","Diao ","Mi ","Lan ","Jin ","Cang ","Miao ","Qiong ","Qie ","Xian ","[?] ","Ou ","Xian ","Su ","Lu ","Yi ","Xu ","Xie ","Li ","Yi ","La ","Lei ","Xiao ","Di ","Zhi ","Bei ","Teng ","Yao ","Mo ","Huan ","Piao ","Fan ","Sou ","Tan ","Tui ","Qiong ","Qiao ","Wei ","Liu ","Hui ","[?] ","Gao ","Yun ","[?] ","Li ","Shu ","Chu ","Ai ","Lin ","Zao ","Xuan ","Chen ","Lai ","Huo "]});var FN=v((BCe,LN)=>{LN.exports=["Tuo ","Wu ","Rui ","Rui ","Qi ","Heng ","Lu ","Su ","Tui ","Mang ","Yun ","Pin ","Yu ","Xun ","Ji ","Jiong ","Xian ","Mo ","Hagi ","Su ","Jiong ","[?] ","Nie ","Bo ","Rang ","Yi ","Xian ","Yu ","Ju ","Lian ","Lian ","Yin ","Qiang ","Ying ","Long ","Tong ","Wei ","Yue ","Ling ","Qu ","Yao ","Fan ","Mi ","Lan ","Kui ","Lan ","Ji ","Dang ","Katsura ","Lei ","Lei ","Hua ","Feng ","Zhi ","Wei ","Kui ","Zhan ","Huai ","Li ","Ji ","Mi ","Lei ","Huai ","Luo ","Ji ","Kui ","Lu ","Jian ","San ","[?] ","Lei ","Quan ","Xiao ","Yi ","Luan ","Men ","Bie ","Hu ","Hu ","Lu ","Nue ","Lu ","Si ","Xiao ","Qian ","Chu ","Hu ","Xu ","Cuo ","Fu ","Xu ","Xu ","Lu ","Hu ","Yu ","Hao ","Jiao ","Ju ","Guo ","Bao ","Yan ","Zhan ","Zhan ","Kui ","Ban ","Xi ","Shu ","Chong ","Qiu ","Diao ","Ji ","Qiu ","Cheng ","Shi ","[?] ","Di ","Zhe ","She ","Yu ","Gan ","Zi ","Hong ","Hui ","Meng ","Ge ","Sui ","Xia ","Chai ","Shi ","Yi ","Ma ","Xiang ","Fang ","E ","Pa ","Chi ","Qian ","Wen ","Wen ","Rui ","Bang ","Bi ","Yue ","Yue ","Jun ","Qi ","Ran ","Yin ","Qi ","Tian ","Yuan ","Jue ","Hui ","Qin ","Qi ","Zhong ","Ya ","Ci ","Mu ","Wang ","Fen ","Fen ","Hang ","Gong ","Zao ","Fu ","Ran ","Jie ","Fu ","Chi ","Dou ","Piao ","Xian ","Ni ","Te ","Qiu ","You ","Zha ","Ping ","Chi ","You ","He ","Han ","Ju ","Li ","Fu ","Ran ","Zha ","Gou ","Pi ","Bo ","Xian ","Zhu ","Diao ","Bie ","Bing ","Gu ","Ran ","Qu ","She ","Tie ","Ling ","Gu ","Dan ","Gu ","Ying ","Li ","Cheng ","Qu ","Mou ","Ge ","Ci ","Hui ","Hui ","Mang ","Fu ","Yang ","Wa ","Lie ","Zhu ","Yi ","Xian ","Kuo ","Jiao ","Li ","Yi ","Ping ","Ji ","Ha ","She ","Yi ","Wang ","Mo ","Qiong ","Qie ","Gui ","Gong ","Zhi ","Man ","Ebi ","Zhi ","Jia ","Rao ","Si ","Qi ","Xing ","Lie ","Qiu ","Shao ","Yong ","Jia ","Shui ","Che ","Bai ","E ","Han "]});var jN=v((qCe,MN)=>{MN.exports=["Shu ","Xuan ","Feng ","Shen ","Zhen ","Fu ","Xian ","Zhe ","Wu ","Fu ","Li ","Lang ","Bi ","Chu ","Yuan ","You ","Jie ","Dan ","Yan ","Ting ","Dian ","Shui ","Hui ","Gua ","Zhi ","Song ","Fei ","Ju ","Mi ","Qi ","Qi ","Yu ","Jun ","Zha ","Meng ","Qiang ","Si ","Xi ","Lun ","Li ","Die ","Tiao ","Tao ","Kun ","Gan ","Han ","Yu ","Bang ","Fei ","Pi ","Wei ","Dun ","Yi ","Yuan ","Su ","Quan ","Qian ","Rui ","Ni ","Qing ","Wei ","Liang ","Guo ","Wan ","Dong ","E ","Ban ","Di ","Wang ","Can ","Yang ","Ying ","Guo ","Chan ","[?] ","La ","Ke ","Ji ","He ","Ting ","Mai ","Xu ","Mian ","Yu ","Jie ","Shi ","Xuan ","Huang ","Yan ","Bian ","Rou ","Wei ","Fu ","Yuan ","Mei ","Wei ","Fu ","Ruan ","Xie ","You ","Qiu ","Mao ","Xia ","Ying ","Shi ","Chong ","Tang ","Zhu ","Zong ","Ti ","Fu ","Yuan ","Hui ","Meng ","La ","Du ","Hu ","Qiu ","Die ","Li ","Gua ","Yun ","Ju ","Nan ","Lou ","Qun ","Rong ","Ying ","Jiang ","[?] ","Lang ","Pang ","Si ","Xi ","Ci ","Xi ","Yuan ","Weng ","Lian ","Sou ","Ban ","Rong ","Rong ","Ji ","Wu ","Qiu ","Han ","Qin ","Yi ","Bi ","Hua ","Tang ","Yi ","Du ","Nai ","He ","Hu ","Hui ","Ma ","Ming ","Yi ","Wen ","Ying ","Teng ","Yu ","Cang ","So ","Ebi ","Man ","[?] ","Shang ","Zhe ","Cao ","Chi ","Di ","Ao ","Lu ","Wei ","Zhi ","Tang ","Chen ","Piao ","Qu ","Pi ","Yu ","Jian ","Luo ","Lou ","Qin ","Zhong ","Yin ","Jiang ","Shuai ","Wen ","Jiao ","Wan ","Zhi ","Zhe ","Ma ","Ma ","Guo ","Liu ","Mao ","Xi ","Cong ","Li ","Man ","Xiao ","Kamakiri ","Zhang ","Mang ","Xiang ","Mo ","Zui ","Si ","Qiu ","Te ","Zhi ","Peng ","Peng ","Jiao ","Qu ","Bie ","Liao ","Pan ","Gui ","Xi ","Ji ","Zhuan ","Huang ","Fei ","Lao ","Jue ","Jue ","Hui ","Yin ","Chan ","Jiao ","Shan ","Rao ","Xiao ","Mou ","Chong ","Xun ","Si ","[?] ","Cheng ","Dang ","Li ","Xie ","Shan ","Yi ","Jing ","Da ","Chan ","Qi "]});var AN=v((WCe,ON)=>{ON.exports=["Ci ","Xiang ","She ","Luo ","Qin ","Ying ","Chai ","Li ","Ze ","Xuan ","Lian ","Zhu ","Ze ","Xie ","Mang ","Xie ","Qi ","Rong ","Jian ","Meng ","Hao ","Ruan ","Huo ","Zhuo ","Jie ","Bin ","He ","Mie ","Fan ","Lei ","Jie ","La ","Mi ","Li ","Chun ","Li ","Qiu ","Nie ","Lu ","Du ","Xiao ","Zhu ","Long ","Li ","Long ","Feng ","Ye ","Beng ","Shang ","Gu ","Juan ","Ying ","[?] ","Xi ","Can ","Qu ","Quan ","Du ","Can ","Man ","Jue ","Jie ","Zhu ","Zha ","Xie ","Huang ","Niu ","Pei ","Nu ","Xin ","Zhong ","Mo ","Er ","Ke ","Mie ","Xi ","Xing ","Yan ","Kan ","Yuan ","[?] ","Ling ","Xuan ","Shu ","Xian ","Tong ","Long ","Jie ","Xian ","Ya ","Hu ","Wei ","Dao ","Chong ","Wei ","Dao ","Zhun ","Heng ","Qu ","Yi ","Yi ","Bu ","Gan ","Yu ","Biao ","Cha ","Yi ","Shan ","Chen ","Fu ","Gun ","Fen ","Shuai ","Jie ","Na ","Zhong ","Dan ","Ri ","Zhong ","Zhong ","Xie ","Qi ","Xie ","Ran ","Zhi ","Ren ","Qin ","Jin ","Jun ","Yuan ","Mei ","Chai ","Ao ","Niao ","Hui ","Ran ","Jia ","Tuo ","Ling ","Dai ","Bao ","Pao ","Yao ","Zuo ","Bi ","Shao ","Tan ","Ju ","He ","Shu ","Xiu ","Zhen ","Yi ","Pa ","Bo ","Di ","Wa ","Fu ","Gun ","Zhi ","Zhi ","Ran ","Pan ","Yi ","Mao ","Tuo ","Na ","Kou ","Xian ","Chan ","Qu ","Bei ","Gun ","Xi ","Ne ","Bo ","Horo ","Fu ","Yi ","Chi ","Ku ","Ren ","Jiang ","Jia ","Cun ","Mo ","Jie ","Er ","Luo ","Ru ","Zhu ","Gui ","Yin ","Cai ","Lie ","Kamishimo ","Yuki ","Zhuang ","Dang ","[?] ","Kun ","Ken ","Niao ","Shu ","Jia ","Kun ","Cheng ","Li ","Juan ","Shen ","Pou ","Ge ","Yi ","Yu ","Zhen ","Liu ","Qiu ","Qun ","Ji ","Yi ","Bu ","Zhuang ","Shui ","Sha ","Qun ","Li ","Lian ","Lian ","Ku ","Jian ","Fou ","Chan ","Bi ","Gun ","Tao ","Yuan ","Ling ","Chi ","Chang ","Chou ","Duo ","Biao ","Liang ","Chang ","Pei ","Pei ","Fei ","Yuan ","Luo ","Guo ","Yan ","Du ","Xi ","Zhi ","Ju ","Qi "]});var HN=v((YCe,NN)=>{NN.exports=["Ji ","Zhi ","Gua ","Ken ","Che ","Ti ","Ti ","Fu ","Chong ","Xie ","Bian ","Die ","Kun ","Duan ","Xiu ","Xiu ","He ","Yuan ","Bao ","Bao ","Fu ","Yu ","Tuan ","Yan ","Hui ","Bei ","Chu ","Lu ","Ena ","Hitoe ","Yun ","Da ","Gou ","Da ","Huai ","Rong ","Yuan ","Ru ","Nai ","Jiong ","Suo ","Ban ","Tun ","Chi ","Sang ","Niao ","Ying ","Jie ","Qian ","Huai ","Ku ","Lian ","Bao ","Li ","Zhe ","Shi ","Lu ","Yi ","Die ","Xie ","Xian ","Wei ","Biao ","Cao ","Ji ","Jiang ","Sen ","Bao ","Xiang ","Chihaya ","Pu ","Jian ","Zhuan ","Jian ","Zui ","Ji ","Dan ","Za ","Fan ","Bo ","Xiang ","Xin ","Bie ","Rao ","Man ","Lan ","Ao ","Duo ","Gui ","Cao ","Sui ","Nong ","Chan ","Lian ","Bi ","Jin ","Dang ","Shu ","Tan ","Bi ","Lan ","Pu ","Ru ","Zhi ","[?] ","Shu ","Wa ","Shi ","Bai ","Xie ","Bo ","Chen ","Lai ","Long ","Xi ","Xian ","Lan ","Zhe ","Dai ","Tasuki ","Zan ","Shi ","Jian ","Pan ","Yi ","Ran ","Ya ","Xi ","Xi ","Yao ","Feng ","Tan ","[?] ","Biao ","Fu ","Ba ","He ","Ji ","Ji ","Jian ","Guan ","Bian ","Yan ","Gui ","Jue ","Pian ","Mao ","Mi ","Mi ","Mie ","Shi ","Si ","Zhan ","Luo ","Jue ","Mi ","Tiao ","Lian ","Yao ","Zhi ","Jun ","Xi ","Shan ","Wei ","Xi ","Tian ","Yu ","Lan ","E ","Du ","Qin ","Pang ","Ji ","Ming ","Ying ","Gou ","Qu ","Zhan ","Jin ","Guan ","Deng ","Jian ","Luo ","Qu ","Jian ","Wei ","Jue ","Qu ","Luo ","Lan ","Shen ","Di ","Guan ","Jian ","Guan ","Yan ","Gui ","Mi ","Shi ","Zhan ","Lan ","Jue ","Ji ","Xi ","Di ","Tian ","Yu ","Gou ","Jin ","Qu ","Jiao ","Jiu ","Jin ","Cu ","Jue ","Zhi ","Chao ","Ji ","Gu ","Dan ","Zui ","Di ","Shang ","Hua ","Quan ","Ge ","Chi ","Jie ","Gui ","Gong ","Hong ","Jie ","Hun ","Qiu ","Xing ","Su ","Ni ","Ji ","Lu ","Zhi ","Zha ","Bi ","Xing ","Hu ","Shang ","Gong ","Zhi ","Xue ","Chu ","Xi ","Yi ","Lu ","Jue ","Xi ","Yan ","Xi "]});var qN=v((ZCe,BN)=>{BN.exports=["Yan ","Yan ","Ding ","Fu ","Qiu ","Qiu ","Jiao ","Hong ","Ji ","Fan ","Xun ","Diao ","Hong ","Cha ","Tao ","Xu ","Jie ","Yi ","Ren ","Xun ","Yin ","Shan ","Qi ","Tuo ","Ji ","Xun ","Yin ","E ","Fen ","Ya ","Yao ","Song ","Shen ","Yin ","Xin ","Jue ","Xiao ","Ne ","Chen ","You ","Zhi ","Xiong ","Fang ","Xin ","Chao ","She ","Xian ","Sha ","Tun ","Xu ","Yi ","Yi ","Su ","Chi ","He ","Shen ","He ","Xu ","Zhen ","Zhu ","Zheng ","Gou ","Zi ","Zi ","Zhan ","Gu ","Fu ","Quan ","Die ","Ling ","Di ","Yang ","Li ","Nao ","Pan ","Zhou ","Gan ","Yi ","Ju ","Ao ","Zha ","Tuo ","Yi ","Qu ","Zhao ","Ping ","Bi ","Xiong ","Qu ","Ba ","Da ","Zu ","Tao ","Zhu ","Ci ","Zhe ","Yong ","Xu ","Xun ","Yi ","Huang ","He ","Shi ","Cha ","Jiao ","Shi ","Hen ","Cha ","Gou ","Gui ","Quan ","Hui ","Jie ","Hua ","Gai ","Xiang ","Wei ","Shen ","Chou ","Tong ","Mi ","Zhan ","Ming ","E ","Hui ","Yan ","Xiong ","Gua ","Er ","Beng ","Tiao ","Chi ","Lei ","Zhu ","Kuang ","Kua ","Wu ","Yu ","Teng ","Ji ","Zhi ","Ren ","Su ","Lang ","E ","Kuang ","E ","Shi ","Ting ","Dan ","Bo ","Chan ","You ","Heng ","Qiao ","Qin ","Shua ","An ","Yu ","Xiao ","Cheng ","Jie ","Xian ","Wu ","Wu ","Gao ","Song ","Pu ","Hui ","Jing ","Shuo ","Zhen ","Shuo ","Du ","Yasashi ","Chang ","Shui ","Jie ","Ke ","Qu ","Cong ","Xiao ","Sui ","Wang ","Xuan ","Fei ","Chi ","Ta ","Yi ","Na ","Yin ","Diao ","Pi ","Chuo ","Chan ","Chen ","Zhun ","Ji ","Qi ","Tan ","Zhui ","Wei ","Ju ","Qing ","Jian ","Zheng ","Ze ","Zou ","Qian ","Zhuo ","Liang ","Jian ","Zhu ","Hao ","Lun ","Shen ","Biao ","Huai ","Pian ","Yu ","Die ","Xu ","Pian ","Shi ","Xuan ","Shi ","Hun ","Hua ","E ","Zhong ","Di ","Xie ","Fu ","Pu ","Ting ","Jian ","Qi ","Yu ","Zi ","Chuan ","Xi ","Hui ","Yin ","An ","Xian ","Nan ","Chen ","Feng ","Zhu ","Yang ","Yan ","Heng ","Xuan ","Ge ","Nuo ","Qi "]});var YN=v((JCe,WN)=>{WN.exports=["Mou ","Ye ","Wei ","[?] ","Teng ","Zou ","Shan ","Jian ","Bo ","Ku ","Huang ","Huo ","Ge ","Ying ","Mi ","Xiao ","Mi ","Xi ","Qiang ","Chen ","Nue ","Ti ","Su ","Bang ","Chi ","Qian ","Shi ","Jiang ","Yuan ","Xie ","Xue ","Tao ","Yao ","Yao ","[?] ","Yu ","Biao ","Cong ","Qing ","Li ","Mo ","Mo ","Shang ","Zhe ","Miu ","Jian ","Ze ","Jie ","Lian ","Lou ","Can ","Ou ","Guan ","Xi ","Zhuo ","Ao ","Ao ","Jin ","Zhe ","Yi ","Hu ","Jiang ","Man ","Chao ","Han ","Hua ","Chan ","Xu ","Zeng ","Se ","Xi ","She ","Dui ","Zheng ","Nao ","Lan ","E ","Ying ","Jue ","Ji ","Zun ","Jiao ","Bo ","Hui ","Zhuan ","Mu ","Zen ","Zha ","Shi ","Qiao ","Tan ","Zen ","Pu ","Sheng ","Xuan ","Zao ","Tan ","Dang ","Sui ","Qian ","Ji ","Jiao ","Jing ","Lian ","Nou ","Yi ","Ai ","Zhan ","Pi ","Hui ","Hua ","Yi ","Yi ","Shan ","Rang ","Nou ","Qian ","Zhui ","Ta ","Hu ","Zhou ","Hao ","Ye ","Ying ","Jian ","Yu ","Jian ","Hui ","Du ","Zhe ","Xuan ","Zan ","Lei ","Shen ","Wei ","Chan ","Li ","Yi ","Bian ","Zhe ","Yan ","E ","Chou ","Wei ","Chou ","Yao ","Chan ","Rang ","Yin ","Lan ","Chen ","Huo ","Zhe ","Huan ","Zan ","Yi ","Dang ","Zhan ","Yan ","Du ","Yan ","Ji ","Ding ","Fu ","Ren ","Ji ","Jie ","Hong ","Tao ","Rang ","Shan ","Qi ","Tuo ","Xun ","Yi ","Xun ","Ji ","Ren ","Jiang ","Hui ","Ou ","Ju ","Ya ","Ne ","Xu ","E ","Lun ","Xiong ","Song ","Feng ","She ","Fang ","Jue ","Zheng ","Gu ","He ","Ping ","Zu ","Shi ","Xiong ","Zha ","Su ","Zhen ","Di ","Zou ","Ci ","Qu ","Zhao ","Bi ","Yi ","Yi ","Kuang ","Lei ","Shi ","Gua ","Shi ","Jie ","Hui ","Cheng ","Zhu ","Shen ","Hua ","Dan ","Gou ","Quan ","Gui ","Xun ","Yi ","Zheng ","Gai ","Xiang ","Cha ","Hun ","Xu ","Zhou ","Jie ","Wu ","Yu ","Qiao ","Wu ","Gao ","You ","Hui ","Kuang ","Shuo ","Song ","Ai ","Qing ","Zhu ","Zou ","Nuo ","Du ","Zhuo ","Fei ","Ke ","Wei "]});var JN=v((UCe,ZN)=>{ZN.exports=["Yu ","Shui ","Shen ","Diao ","Chan ","Liang ","Zhun ","Sui ","Tan ","Shen ","Yi ","Mou ","Chen ","Die ","Huang ","Jian ","Xie ","Nue ","Ye ","Wei ","E ","Yu ","Xuan ","Chan ","Zi ","An ","Yan ","Di ","Mi ","Pian ","Xu ","Mo ","Dang ","Su ","Xie ","Yao ","Bang ","Shi ","Qian ","Mi ","Jin ","Man ","Zhe ","Jian ","Miu ","Tan ","Zen ","Qiao ","Lan ","Pu ","Jue ","Yan ","Qian ","Zhan ","Chen ","Gu ","Qian ","Hong ","Xia ","Jue ","Hong ","Han ","Hong ","Xi ","Xi ","Huo ","Liao ","Han ","Du ","Long ","Dou ","Jiang ","Qi ","Shi ","Li ","Deng ","Wan ","Bi ","Shu ","Xian ","Feng ","Zhi ","Zhi ","Yan ","Yan ","Shi ","Chu ","Hui ","Tun ","Yi ","Tun ","Yi ","Jian ","Ba ","Hou ","E ","Cu ","Xiang ","Huan ","Jian ","Ken ","Gai ","Qu ","Fu ","Xi ","Bin ","Hao ","Yu ","Zhu ","Jia ","[?] ","Xi ","Bo ","Wen ","Huan ","Bin ","Di ","Zong ","Fen ","Yi ","Zhi ","Bao ","Chai ","Han ","Pi ","Na ","Pi ","Gou ","Na ","You ","Diao ","Mo ","Si ","Xiu ","Huan ","Kun ","He ","He ","Mo ","Han ","Mao ","Li ","Ni ","Bi ","Yu ","Jia ","Tuan ","Mao ","Pi ","Xi ","E ","Ju ","Mo ","Chu ","Tan ","Huan ","Jue ","Bei ","Zhen ","Yuan ","Fu ","Cai ","Gong ","Te ","Yi ","Hang ","Wan ","Pin ","Huo ","Fan ","Tan ","Guan ","Ze ","Zhi ","Er ","Zhu ","Shi ","Bi ","Zi ","Er ","Gui ","Pian ","Bian ","Mai ","Dai ","Sheng ","Kuang ","Fei ","Tie ","Yi ","Chi ","Mao ","He ","Bi ","Lu ","Ren ","Hui ","Gai ","Pian ","Zi ","Jia ","Xu ","Zei ","Jiao ","Gai ","Zang ","Jian ","Ying ","Xun ","Zhen ","She ","Bin ","Bin ","Qiu ","She ","Chuan ","Zang ","Zhou ","Lai ","Zan ","Si ","Chen ","Shang ","Tian ","Pei ","Geng ","Xian ","Mai ","Jian ","Sui ","Fu ","Tan ","Cong ","Cong ","Zhi ","Ji ","Zhang ","Du ","Jin ","Xiong ","Shun ","Yun ","Bao ","Zai ","Lai ","Feng ","Cang ","Ji ","Sheng ","Ai ","Zhuan ","Fu ","Gou ","Sai ","Ze ","Liao "]});var $N=v(($Ce,UN)=>{UN.exports=["Wei ","Bai ","Chen ","Zhuan ","Zhi ","Zhui ","Biao ","Yun ","Zeng ","Tan ","Zan ","Yan ","[?] ","Shan ","Wan ","Ying ","Jin ","Gan ","Xian ","Zang ","Bi ","Du ","Shu ","Yan ","[?] ","Xuan ","Long ","Gan ","Zang ","Bei ","Zhen ","Fu ","Yuan ","Gong ","Cai ","Ze ","Xian ","Bai ","Zhang ","Huo ","Zhi ","Fan ","Tan ","Pin ","Bian ","Gou ","Zhu ","Guan ","Er ","Jian ","Bi ","Shi ","Tie ","Gui ","Kuang ","Dai ","Mao ","Fei ","He ","Yi ","Zei ","Zhi ","Jia ","Hui ","Zi ","Ren ","Lu ","Zang ","Zi ","Gai ","Jin ","Qiu ","Zhen ","Lai ","She ","Fu ","Du ","Ji ","Shu ","Shang ","Si ","Bi ","Zhou ","Geng ","Pei ","Tan ","Lai ","Feng ","Zhui ","Fu ","Zhuan ","Sai ","Ze ","Yan ","Zan ","Yun ","Zeng ","Shan ","Ying ","Gan ","Chi ","Xi ","She ","Nan ","Xiong ","Xi ","Cheng ","He ","Cheng ","Zhe ","Xia ","Tang ","Zou ","Zou ","Li ","Jiu ","Fu ","Zhao ","Gan ","Qi ","Shan ","Qiong ","Qin ","Xian ","Ci ","Jue ","Qin ","Chi ","Ci ","Chen ","Chen ","Die ","Ju ","Chao ","Di ","Se ","Zhan ","Zhu ","Yue ","Qu ","Jie ","Chi ","Chu ","Gua ","Xue ","Ci ","Tiao ","Duo ","Lie ","Gan ","Suo ","Cu ","Xi ","Zhao ","Su ","Yin ","Ju ","Jian ","Que ","Tang ","Chuo ","Cui ","Lu ","Qu ","Dang ","Qiu ","Zi ","Ti ","Qu ","Chi ","Huang ","Qiao ","Qiao ","Yao ","Zao ","Ti ","[?] ","Zan ","Zan ","Zu ","Pa ","Bao ","Ku ","Ke ","Dun ","Jue ","Fu ","Chen ","Jian ","Fang ","Zhi ","Sa ","Yue ","Pa ","Qi ","Yue ","Qiang ","Tuo ","Tai ","Yi ","Nian ","Ling ","Mei ","Ba ","Die ","Ku ","Tuo ","Jia ","Ci ","Pao ","Qia ","Zhu ","Ju ","Die ","Zhi ","Fu ","Pan ","Ju ","Shan ","Bo ","Ni ","Ju ","Li ","Gen ","Yi ","Ji ","Dai ","Xian ","Jiao ","Duo ","Zhu ","Zhuan ","Kua ","Zhuai ","Gui ","Qiong ","Kui ","Xiang ","Chi ","Lu ","Beng ","Zhi ","Jia ","Tiao ","Cai ","Jian ","Ta ","Qiao ","Bi ","Xian ","Duo ","Ji ","Ju ","Ji ","Shu ","Tu "]});var GN=v((XCe,XN)=>{XN.exports=["Chu ","Jing ","Nie ","Xiao ","Bo ","Chi ","Qun ","Mou ","Shu ","Lang ","Yong ","Jiao ","Chou ","Qiao ","[?] ","Ta ","Jian ","Qi ","Wo ","Wei ","Zhuo ","Jie ","Ji ","Nie ","Ju ","Ju ","Lun ","Lu ","Leng ","Huai ","Ju ","Chi ","Wan ","Quan ","Ti ","Bo ","Zu ","Qie ","Ji ","Cu ","Zong ","Cai ","Zong ","Peng ","Zhi ","Zheng ","Dian ","Zhi ","Yu ","Duo ","Dun ","Chun ","Yong ","Zhong ","Di ","Zhe ","Chen ","Chuai ","Jian ","Gua ","Tang ","Ju ","Fu ","Zu ","Die ","Pian ","Rou ","Nuo ","Ti ","Cha ","Tui ","Jian ","Dao ","Cuo ","Xi ","Ta ","Qiang ","Zhan ","Dian ","Ti ","Ji ","Nie ","Man ","Liu ","Zhan ","Bi ","Chong ","Lu ","Liao ","Cu ","Tang ","Dai ","Suo ","Xi ","Kui ","Ji ","Zhi ","Qiang ","Di ","Man ","Zong ","Lian ","Beng ","Zao ","Nian ","Bie ","Tui ","Ju ","Deng ","Ceng ","Xian ","Fan ","Chu ","Zhong ","Dun ","Bo ","Cu ","Zu ","Jue ","Jue ","Lin ","Ta ","Qiao ","Qiao ","Pu ","Liao ","Dun ","Cuan ","Kuang ","Zao ","Ta ","Bi ","Bi ","Zhu ","Ju ","Chu ","Qiao ","Dun ","Chou ","Ji ","Wu ","Yue ","Nian ","Lin ","Lie ","Zhi ","Li ","Zhi ","Chan ","Chu ","Duan ","Wei ","Long ","Lin ","Xian ","Wei ","Zuan ","Lan ","Xie ","Rang ","Xie ","Nie ","Ta ","Qu ","Jie ","Cuan ","Zuan ","Xi ","Kui ","Jue ","Lin ","Shen ","Gong ","Dan ","Segare ","Qu ","Ti ","Duo ","Duo ","Gong ","Lang ","Nerau ","Luo ","Ai ","Ji ","Ju ","Tang ","Utsuke ","[?] ","Yan ","Shitsuke ","Kang ","Qu ","Lou ","Lao ","Tuo ","Zhi ","Yagate ","Ti ","Dao ","Yagate ","Yu ","Che ","Ya ","Gui ","Jun ","Wei ","Yue ","Xin ","Di ","Xuan ","Fan ","Ren ","Shan ","Qiang ","Shu ","Tun ","Chen ","Dai ","E ","Na ","Qi ","Mao ","Ruan ","Ren ","Fan ","Zhuan ","Hong ","Hu ","Qu ","Huang ","Di ","Ling ","Dai ","Ao ","Zhen ","Fan ","Kuang ","Ang ","Peng ","Bei ","Gu ","Ku ","Pao ","Zhu ","Rong ","E ","Ba ","Zhou ","Zhi ","Yao ","Ke ","Yi ","Qing ","Shi ","Ping "]});var KN=v((GCe,zN)=>{zN.exports=["Er ","Qiong ","Ju ","Jiao ","Guang ","Lu ","Kai ","Quan ","Zhou ","Zai ","Zhi ","She ","Liang ","Yu ","Shao ","You ","Huan ","Yun ","Zhe ","Wan ","Fu ","Qing ","Zhou ","Ni ","Ling ","Zhe ","Zhan ","Liang ","Zi ","Hui ","Wang ","Chuo ","Guo ","Kan ","Yi ","Peng ","Qian ","Gun ","Nian ","Pian ","Guan ","Bei ","Lun ","Pai ","Liang ","Ruan ","Rou ","Ji ","Yang ","Xian ","Chuan ","Cou ","Qun ","Ge ","You ","Hong ","Shu ","Fu ","Zi ","Fu ","Wen ","Ben ","Zhan ","Yu ","Wen ","Tao ","Gu ","Zhen ","Xia ","Yuan ","Lu ","Jiu ","Chao ","Zhuan ","Wei ","Hun ","Sori ","Che ","Jiao ","Zhan ","Pu ","Lao ","Fen ","Fan ","Lin ","Ge ","Se ","Kan ","Huan ","Yi ","Ji ","Dui ","Er ","Yu ","Xian ","Hong ","Lei ","Pei ","Li ","Li ","Lu ","Lin ","Che ","Ya ","Gui ","Xuan ","Di ","Ren ","Zhuan ","E ","Lun ","Ruan ","Hong ","Ku ","Ke ","Lu ","Zhou ","Zhi ","Yi ","Hu ","Zhen ","Li ","Yao ","Qing ","Shi ","Zai ","Zhi ","Jiao ","Zhou ","Quan ","Lu ","Jiao ","Zhe ","Fu ","Liang ","Nian ","Bei ","Hui ","Gun ","Wang ","Liang ","Chuo ","Zi ","Cou ","Fu ","Ji ","Wen ","Shu ","Pei ","Yuan ","Xia ","Zhan ","Lu ","Che ","Lin ","Xin ","Gu ","Ci ","Ci ","Pi ","Zui ","Bian ","La ","La ","Ci ","Xue ","Ban ","Bian ","Bian ","Bian ","[?] ","Bian ","Ban ","Ci ","Bian ","Bian ","Chen ","Ru ","Nong ","Nong ","Zhen ","Chuo ","Chuo ","Suberu ","Reng ","Bian ","Bian ","Sip ","Ip ","Liao ","Da ","Chan ","Gan ","Qian ","Yu ","Yu ","Qi ","Xun ","Yi ","Guo ","Mai ","Qi ","Za ","Wang ","Jia ","Zhun ","Ying ","Ti ","Yun ","Jin ","Hang ","Ya ","Fan ","Wu ","Da ","E ","Huan ","Zhe ","Totemo ","Jin ","Yuan ","Wei ","Lian ","Chi ","Che ","Ni ","Tiao ","Zhi ","Yi ","Jiong ","Jia ","Chen ","Dai ","Er ","Di ","Po ","Wang ","Die ","Ze ","Tao ","Shu ","Tuo ","Kep ","Jing ","Hui ","Tong ","You ","Mi ","Beng ","Ji ","Nai ","Yi ","Jie ","Zhui ","Lie ","Xun "]});var VN=v((zCe,QN)=>{QN.exports=["Tui ","Song ","Gua ","Tao ","Pang ","Hou ","Ni ","Dun ","Jiong ","Xuan ","Xun ","Bu ","You ","Xiao ","Qiu ","Tou ","Zhu ","Qiu ","Di ","Di ","Tu ","Jing ","Ti ","Dou ","Yi ","Zhe ","Tong ","Guang ","Wu ","Shi ","Cheng ","Su ","Zao ","Qun ","Feng ","Lian ","Suo ","Hui ","Li ","Sako ","Lai ","Ben ","Cuo ","Jue ","Beng ","Huan ","Dai ","Lu ","You ","Zhou ","Jin ","Yu ","Chuo ","Kui ","Wei ","Ti ","Yi ","Da ","Yuan ","Luo ","Bi ","Nuo ","Yu ","Dang ","Sui ","Dun ","Sui ","Yan ","Chuan ","Chi ","Ti ","Yu ","Shi ","Zhen ","You ","Yun ","E ","Bian ","Guo ","E ","Xia ","Huang ","Qiu ","Dao ","Da ","Wei ","Appare ","Yi ","Gou ","Yao ","Chu ","Liu ","Xun ","Ta ","Di ","Chi ","Yuan ","Su ","Ta ","Qian ","[?] ","Yao ","Guan ","Zhang ","Ao ","Shi ","Ce ","Chi ","Su ","Zao ","Zhe ","Dun ","Di ","Lou ","Chi ","Cuo ","Lin ","Zun ","Rao ","Qian ","Xuan ","Yu ","Yi ","Wu ","Liao ","Ju ","Shi ","Bi ","Yao ","Mai ","Xie ","Sui ","Huan ","Zhan ","Teng ","Er ","Miao ","Bian ","Bian ","La ","Li ","Yuan ","Yao ","Luo ","Li ","Yi ","Ting ","Deng ","Qi ","Yong ","Shan ","Han ","Yu ","Mang ","Ru ","Qiong ","[?] ","Kuang ","Fu ","Kang ","Bin ","Fang ","Xing ","Na ","Xin ","Shen ","Bang ","Yuan ","Cun ","Huo ","Xie ","Bang ","Wu ","Ju ","You ","Han ","Tai ","Qiu ","Bi ","Pei ","Bing ","Shao ","Bei ","Wa ","Di ","Zou ","Ye ","Lin ","Kuang ","Gui ","Zhu ","Shi ","Ku ","Yu ","Gai ","Ge ","Xi ","Zhi ","Ji ","Xun ","Hou ","Xing ","Jiao ","Xi ","Gui ","Nuo ","Lang ","Jia ","Kuai ","Zheng ","Otoko ","Yun ","Yan ","Cheng ","Dou ","Chi ","Lu ","Fu ","Wu ","Fu ","Gao ","Hao ","Lang ","Jia ","Geng ","Jun ","Ying ","Bo ","Xi ","Bei ","Li ","Yun ","Bu ","Xiao ","Qi ","Pi ","Qing ","Guo ","Zhou ","Tan ","Zou ","Ping ","Lai ","Ni ","Chen ","You ","Bu ","Xiang ","Dan ","Ju ","Yong ","Qiao ","Yi ","Du ","Yan ","Mei "]});var tH=v((KCe,eH)=>{eH.exports=["Ruo ","Bei ","E ","Yu ","Juan ","Yu ","Yun ","Hou ","Kui ","Xiang ","Xiang ","Sou ","Tang ","Ming ","Xi ","Ru ","Chu ","Zi ","Zou ","Ju ","Wu ","Xiang ","Yun ","Hao ","Yong ","Bi ","Mo ","Chao ","Fu ","Liao ","Yin ","Zhuan ","Hu ","Qiao ","Yan ","Zhang ","Fan ","Qiao ","Xu ","Deng ","Bi ","Xin ","Bi ","Ceng ","Wei ","Zheng ","Mao ","Shan ","Lin ","Po ","Dan ","Meng ","Ye ","Cao ","Kuai ","Feng ","Meng ","Zou ","Kuang ","Lian ","Zan ","Chan ","You ","Qi ","Yan ","Chan ","Zan ","Ling ","Huan ","Xi ","Feng ","Zan ","Li ","You ","Ding ","Qiu ","Zhuo ","Pei ","Zhou ","Yi ","Hang ","Yu ","Jiu ","Yan ","Zui ","Mao ","Dan ","Xu ","Tou ","Zhen ","Fen ","Sakenomoto ","[?] ","Yun ","Tai ","Tian ","Qia ","Tuo ","Zuo ","Han ","Gu ","Su ","Po ","Chou ","Zai ","Ming ","Luo ","Chuo ","Chou ","You ","Tong ","Zhi ","Xian ","Jiang ","Cheng ","Yin ","Tu ","Xiao ","Mei ","Ku ","Suan ","Lei ","Pu ","Zui ","Hai ","Yan ","Xi ","Niang ","Wei ","Lu ","Lan ","Yan ","Tao ","Pei ","Zhan ","Chun ","Tan ","Zui ","Chuo ","Cu ","Kun ","Ti ","Mian ","Du ","Hu ","Xu ","Xing ","Tan ","Jiu ","Chun ","Yun ","Po ","Ke ","Sou ","Mi ","Quan ","Chou ","Cuo ","Yun ","Yong ","Ang ","Zha ","Hai ","Tang ","Jiang ","Piao ","Shan ","Yu ","Li ","Zao ","Lao ","Yi ","Jiang ","Pu ","Jiao ","Xi ","Tan ","Po ","Nong ","Yi ","Li ","Ju ","Jiao ","Yi ","Niang ","Ru ","Xun ","Chou ","Yan ","Ling ","Mi ","Mi ","Niang ","Xin ","Jiao ","Xi ","Mi ","Yan ","Bian ","Cai ","Shi ","You ","Shi ","Shi ","Li ","Zhong ","Ye ","Liang ","Li ","Jin ","Jin ","Qiu ","Yi ","Diao ","Dao ","Zhao ","Ding ","Po ","Qiu ","He ","Fu ","Zhen ","Zhi ","Ba ","Luan ","Fu ","Nai ","Diao ","Shan ","Qiao ","Kou ","Chuan ","Zi ","Fan ","Yu ","Hua ","Han ","Gong ","Qi ","Mang ","Ri ","Di ","Si ","Xi ","Yi ","Chai ","Shi ","Tu ","Xi ","Nu ","Qian ","Ishiyumi ","Jian ","Pi ","Ye ","Yin "]});var nH=v((QCe,iH)=>{iH.exports=["Ba ","Fang ","Chen ","Xing ","Tou ","Yue ","Yan ","Fu ","Pi ","Na ","Xin ","E ","Jue ","Dun ","Gou ","Yin ","Qian ","Ban ","Ji ","Ren ","Chao ","Niu ","Fen ","Yun ","Ji ","Qin ","Pi ","Guo ","Hong ","Yin ","Jun ","Shi ","Yi ","Zhong ","Nie ","Gai ","Ri ","Huo ","Tai ","Kang ","Habaki ","Irori ","Ngaak ","[?] ","Duo ","Zi ","Ni ","Tu ","Shi ","Min ","Gu ","E ","Ling ","Bing ","Yi ","Gu ","Ba ","Pi ","Yu ","Si ","Zuo ","Bu ","You ","Dian ","Jia ","Zhen ","Shi ","Shi ","Tie ","Ju ","Zhan ","Shi ","She ","Xuan ","Zhao ","Bao ","He ","Bi ","Sheng ","Chu ","Shi ","Bo ","Zhu ","Chi ","Za ","Po ","Tong ","Qian ","Fu ","Zhai ","Liu ","Qian ","Fu ","Li ","Yue ","Pi ","Yang ","Ban ","Bo ","Jie ","Gou ","Shu ","Zheng ","Mu ","Ni ","Nie ","Di ","Jia ","Mu ","Dan ","Shen ","Yi ","Si ","Kuang ","Ka ","Bei ","Jian ","Tong ","Xing ","Hong ","Jiao ","Chi ","Er ","Ge ","Bing ","Shi ","Mou ","Jia ","Yin ","Jun ","Zhou ","Chong ","Shang ","Tong ","Mo ","Lei ","Ji ","Yu ","Xu ","Ren ","Zun ","Zhi ","Qiong ","Shan ","Chi ","Xian ","Xing ","Quan ","Pi ","Tie ","Zhu ","Hou ","Ming ","Kua ","Yao ","Xian ","Xian ","Xiu ","Jun ","Cha ","Lao ","Ji ","Pi ","Ru ","Mi ","Yi ","Yin ","Guang ","An ","Diou ","You ","Se ","Kao ","Qian ","Luan ","Kasugai ","Ai ","Diao ","Han ","Rui ","Shi ","Keng ","Qiu ","Xiao ","Zhe ","Xiu ","Zang ","Ti ","Cuo ","Gua ","Gong ","Zhong ","Dou ","Lu ","Mei ","Lang ","Wan ","Xin ","Yun ","Bei ","Wu ","Su ","Yu ","Chan ","Ting ","Bo ","Han ","Jia ","Hong ","Cuan ","Feng ","Chan ","Wan ","Zhi ","Si ","Xuan ","Wu ","Wu ","Tiao ","Gong ","Zhuo ","Lue ","Xing ","Qian ","Shen ","Han ","Lue ","Xie ","Chu ","Zheng ","Ju ","Xian ","Tie ","Mang ","Pu ","Li ","Pan ","Rui ","Cheng ","Gao ","Li ","Te ","Pyeng ","Zhu ","[?] ","Tu ","Liu ","Zui ","Ju ","Chang ","Yuan ","Jian ","Gang ","Diao ","Tao ","Chang "]});var oH=v((VCe,rH)=>{rH.exports=["Lun ","Kua ","Ling ","Bei ","Lu ","Li ","Qiang ","Pou ","Juan ","Min ","Zui ","Peng ","An ","Pi ","Xian ","Ya ","Zhui ","Lei ","A ","Kong ","Ta ","Kun ","Du ","Wei ","Chui ","Zi ","Zheng ","Ben ","Nie ","Cong ","Qun ","Tan ","Ding ","Qi ","Qian ","Zhuo ","Qi ","Yu ","Jin ","Guan ","Mao ","Chang ","Tian ","Xi ","Lian ","Tao ","Gu ","Cuo ","Shu ","Zhen ","Lu ","Meng ","Lu ","Hua ","Biao ","Ga ","Lai ","Ken ","Kazari ","Bu ","Nai ","Wan ","Zan ","[?] ","De ","Xian ","[?] ","Huo ","Liang ","[?] ","Men ","Kai ","Ying ","Di ","Lian ","Guo ","Xian ","Du ","Tu ","Wei ","Cong ","Fu ","Rou ","Ji ","E ","Rou ","Chen ","Ti ","Zha ","Hong ","Yang ","Duan ","Xia ","Yu ","Keng ","Xing ","Huang ","Wei ","Fu ","Zhao ","Cha ","Qie ","She ","Hong ","Kui ","Tian ","Mou ","Qiao ","Qiao ","Hou ","Tou ","Cong ","Huan ","Ye ","Min ","Jian ","Duan ","Jian ","Song ","Kui ","Hu ","Xuan ","Duo ","Jie ","Zhen ","Bian ","Zhong ","Zi ","Xiu ","Ye ","Mei ","Pai ","Ai ","Jie ","[?] ","Mei ","Chuo ","Ta ","Bang ","Xia ","Lian ","Suo ","Xi ","Liu ","Zu ","Ye ","Nou ","Weng ","Rong ","Tang ","Suo ","Qiang ","Ge ","Shuo ","Chui ","Bo ","Pan ","Sa ","Bi ","Sang ","Gang ","Zi ","Wu ","Ying ","Huang ","Tiao ","Liu ","Kai ","Sun ","Sha ","Sou ","Wan ","Hao ","Zhen ","Zhen ","Luo ","Yi ","Yuan ","Tang ","Nie ","Xi ","Jia ","Ge ","Ma ","Juan ","Kasugai ","Habaki ","Suo ","[?] ","[?] ","[?] ","Na ","Lu ","Suo ","Ou ","Zu ","Tuan ","Xiu ","Guan ","Xuan ","Lian ","Shou ","Ao ","Man ","Mo ","Luo ","Bi ","Wei ","Liu ","Di ","Qiao ","Cong ","Yi ","Lu ","Ao ","Keng ","Qiang ","Cui ","Qi ","Chang ","Tang ","Man ","Yong ","Chan ","Feng ","Jing ","Biao ","Shu ","Lou ","Xiu ","Cong ","Long ","Zan ","Jian ","Cao ","Li ","Xia ","Xi ","Kang ","[?] ","Beng ","[?] ","[?] ","Zheng ","Lu ","Hua ","Ji ","Pu ","Hui ","Qiang ","Po ","Lin ","Suo ","Xiu ","San ","Cheng "]});var aH=v((eSe,sH)=>{sH.exports=["Kui ","Si ","Liu ","Nao ","Heng ","Pie ","Sui ","Fan ","Qiao ","Quan ","Yang ","Tang ","Xiang ","Jue ","Jiao ","Zun ","Liao ","Jie ","Lao ","Dui ","Tan ","Zan ","Ji ","Jian ","Zhong ","Deng ","Ya ","Ying ","Dui ","Jue ","Nou ","Ti ","Pu ","Tie ","[?] ","[?] ","Ding ","Shan ","Kai ","Jian ","Fei ","Sui ","Lu ","Juan ","Hui ","Yu ","Lian ","Zhuo ","Qiao ","Qian ","Zhuo ","Lei ","Bi ","Tie ","Huan ","Ye ","Duo ","Guo ","Dang ","Ju ","Fen ","Da ","Bei ","Yi ","Ai ","Zong ","Xun ","Diao ","Zhu ","Heng ","Zhui ","Ji ","Nie ","Ta ","Huo ","Qing ","Bin ","Ying ","Kui ","Ning ","Xu ","Jian ","Jian ","Yari ","Cha ","Zhi ","Mie ","Li ","Lei ","Ji ","Zuan ","Kuang ","Shang ","Peng ","La ","Du ","Shuo ","Chuo ","Lu ","Biao ","Bao ","Lu ","[?] ","[?] ","Long ","E ","Lu ","Xin ","Jian ","Lan ","Bo ","Jian ","Yao ","Chan ","Xiang ","Jian ","Xi ","Guan ","Cang ","Nie ","Lei ","Cuan ","Qu ","Pan ","Luo ","Zuan ","Luan ","Zao ","Nie ","Jue ","Tang ","Shu ","Lan ","Jin ","Qiu ","Yi ","Zhen ","Ding ","Zhao ","Po ","Diao ","Tu ","Qian ","Chuan ","Shan ","Ji ","Fan ","Diao ","Men ","Nu ","Xi ","Chai ","Xing ","Gai ","Bu ","Tai ","Ju ","Dun ","Chao ","Zhong ","Na ","Bei ","Gang ","Ban ","Qian ","Yao ","Qin ","Jun ","Wu ","Gou ","Kang ","Fang ","Huo ","Tou ","Niu ","Ba ","Yu ","Qian ","Zheng ","Qian ","Gu ","Bo ","E ","Po ","Bu ","Ba ","Yue ","Zuan ","Mu ","Dan ","Jia ","Dian ","You ","Tie ","Bo ","Ling ","Shuo ","Qian ","Liu ","Bao ","Shi ","Xuan ","She ","Bi ","Ni ","Pi ","Duo ","Xing ","Kao ","Lao ","Er ","Mang ","Ya ","You ","Cheng ","Jia ","Ye ","Nao ","Zhi ","Dang ","Tong ","Lu ","Diao ","Yin ","Kai ","Zha ","Zhu ","Xian ","Ting ","Diu ","Xian ","Hua ","Quan ","Sha ","Jia ","Yao ","Ge ","Ming ","Zheng ","Se ","Jiao ","Yi ","Chan ","Chong ","Tang ","An ","Yin ","Ru ","Zhu ","Lao ","Pu ","Wu ","Lai ","Te ","Lian ","Keng "]});var uH=v((tSe,lH)=>{lH.exports=["Xiao ","Suo ","Li ","Zheng ","Chu ","Guo ","Gao ","Tie ","Xiu ","Cuo ","Lue ","Feng ","Xin ","Liu ","Kai ","Jian ","Rui ","Ti ","Lang ","Qian ","Ju ","A ","Qiang ","Duo ","Tian ","Cuo ","Mao ","Ben ","Qi ","De ","Kua ","Kun ","Chang ","Xi ","Gu ","Luo ","Chui ","Zhui ","Jin ","Zhi ","Xian ","Juan ","Huo ","Pou ","Tan ","Ding ","Jian ","Ju ","Meng ","Zi ","Qie ","Ying ","Kai ","Qiang ","Song ","E ","Cha ","Qiao ","Zhong ","Duan ","Sou ","Huang ","Huan ","Ai ","Du ","Mei ","Lou ","Zi ","Fei ","Mei ","Mo ","Zhen ","Bo ","Ge ","Nie ","Tang ","Juan ","Nie ","Na ","Liu ","Hao ","Bang ","Yi ","Jia ","Bin ","Rong ","Biao ","Tang ","Man ","Luo ","Beng ","Yong ","Jing ","Di ","Zu ","Xuan ","Liu ","Tan ","Jue ","Liao ","Pu ","Lu ","Dui ","Lan ","Pu ","Cuan ","Qiang ","Deng ","Huo ","Lei ","Huan ","Zhuo ","Lian ","Yi ","Cha ","Biao ","La ","Chan ","Xiang ","Chang ","Chang ","Jiu ","Ao ","Die ","Qu ","Liao ","Mi ","Chang ","Men ","Ma ","Shuan ","Shan ","Huo ","Men ","Yan ","Bi ","Han ","Bi ","San ","Kai ","Kang ","Beng ","Hong ","Run ","San ","Xian ","Xian ","Jian ","Min ","Xia ","Yuru ","Dou ","Zha ","Nao ","Jian ","Peng ","Xia ","Ling ","Bian ","Bi ","Run ","He ","Guan ","Ge ","Ge ","Fa ","Chu ","Hong ","Gui ","Min ","Se ","Kun ","Lang ","Lu ","Ting ","Sha ","Ju ","Yue ","Yue ","Chan ","Qu ","Lin ","Chang ","Shai ","Kun ","Yan ","Min ","Yan ","E ","Hun ","Yu ","Wen ","Xiang ","Bao ","Xiang ","Qu ","Yao ","Wen ","Ban ","An ","Wei ","Yin ","Kuo ","Que ","Lan ","Du ","[?] ","Phwung ","Tian ","Nie ","Ta ","Kai ","He ","Que ","Chuang ","Guan ","Dou ","Qi ","Kui ","Tang ","Guan ","Piao ","Kan ","Xi ","Hui ","Chan ","Pi ","Dang ","Huan ","Ta ","Wen ","[?] ","Men ","Shuan ","Shan ","Yan ","Han ","Bi ","Wen ","Chuang ","Run ","Wei ","Xian ","Hong ","Jian ","Min ","Kang ","Men ","Zha ","Nao ","Gui ","Wen ","Ta ","Min ","Lu ","Kai "]});var dH=v((iSe,cH)=>{cH.exports=["Fa ","Ge ","He ","Kun ","Jiu ","Yue ","Lang ","Du ","Yu ","Yan ","Chang ","Xi ","Wen ","Hun ","Yan ","E ","Chan ","Lan ","Qu ","Hui ","Kuo ","Que ","Ge ","Tian ","Ta ","Que ","Kan ","Huan ","Fu ","Fu ","Le ","Dui ","Xin ","Qian ","Wu ","Yi ","Tuo ","Yin ","Yang ","Dou ","E ","Sheng ","Ban ","Pei ","Keng ","Yun ","Ruan ","Zhi ","Pi ","Jing ","Fang ","Yang ","Yin ","Zhen ","Jie ","Cheng ","E ","Qu ","Di ","Zu ","Zuo ","Dian ","Ling ","A ","Tuo ","Tuo ","Po ","Bing ","Fu ","Ji ","Lu ","Long ","Chen ","Xing ","Duo ","Lou ","Mo ","Jiang ","Shu ","Duo ","Xian ","Er ","Gui ","Yu ","Gai ","Shan ","Xun ","Qiao ","Xing ","Chun ","Fu ","Bi ","Xia ","Shan ","Sheng ","Zhi ","Pu ","Dou ","Yuan ","Zhen ","Chu ","Xian ","Tou ","Nie ","Yun ","Xian ","Pei ","Pei ","Zou ","Yi ","Dui ","Lun ","Yin ","Ju ","Chui ","Chen ","Pi ","Ling ","Tao ","Xian ","Lu ","Sheng ","Xian ","Yin ","Zhu ","Yang ","Reng ","Shan ","Chong ","Yan ","Yin ","Yu ","Ti ","Yu ","Long ","Wei ","Wei ","Nie ","Dui ","Sui ","An ","Huang ","Jie ","Sui ","Yin ","Gai ","Yan ","Hui ","Ge ","Yun ","Wu ","Wei ","Ai ","Xi ","Tang ","Ji ","Zhang ","Dao ","Ao ","Xi ","Yin ","[?] ","Rao ","Lin ","Tui ","Deng ","Pi ","Sui ","Sui ","Yu ","Xian ","Fen ","Ni ","Er ","Ji ","Dao ","Xi ","Yin ","E ","Hui ","Long ","Xi ","Li ","Li ","Li ","Zhui ","He ","Zhi ","Zhun ","Jun ","Nan ","Yi ","Que ","Yan ","Qian ","Ya ","Xiong ","Ya ","Ji ","Gu ","Huan ","Zhi ","Gou ","Jun ","Ci ","Yong ","Ju ","Chu ","Hu ","Za ","Luo ","Yu ","Chou ","Diao ","Sui ","Han ","Huo ","Shuang ","Guan ","Chu ","Za ","Yong ","Ji ","Xi ","Chou ","Liu ","Li ","Nan ","Xue ","Za ","Ji ","Ji ","Yu ","Yu ","Xue ","Na ","Fou ","Se ","Mu ","Wen ","Fen ","Pang ","Yun ","Li ","Li ","Ang ","Ling ","Lei ","An ","Bao ","Meng ","Dian ","Dang ","Xing ","Wu ","Zhao "]});var gH=v((nSe,hH)=>{hH.exports=["Xu ","Ji ","Mu ","Chen ","Xiao ","Zha ","Ting ","Zhen ","Pei ","Mei ","Ling ","Qi ","Chou ","Huo ","Sha ","Fei ","Weng ","Zhan ","Yin ","Ni ","Chou ","Tun ","Lin ","[?] ","Dong ","Ying ","Wu ","Ling ","Shuang ","Ling ","Xia ","Hong ","Yin ","Mo ","Mai ","Yun ","Liu ","Meng ","Bin ","Wu ","Wei ","Huo ","Yin ","Xi ","Yi ","Ai ","Dan ","Deng ","Xian ","Yu ","Lu ","Long ","Dai ","Ji ","Pang ","Yang ","Ba ","Pi ","Wei ","[?] ","Xi ","Ji ","Mai ","Meng ","Meng ","Lei ","Li ","Huo ","Ai ","Fei ","Dai ","Long ","Ling ","Ai ","Feng ","Li ","Bao ","[?] ","He ","He ","Bing ","Qing ","Qing ","Jing ","Tian ","Zhen ","Jing ","Cheng ","Qing ","Jing ","Jing ","Dian ","Jing ","Tian ","Fei ","Fei ","Kao ","Mi ","Mian ","Mian ","Pao ","Ye ","Tian ","Hui ","Ye ","Ge ","Ding ","Cha ","Jian ","Ren ","Di ","Du ","Wu ","Ren ","Qin ","Jin ","Xue ","Niu ","Ba ","Yin ","Sa ","Na ","Mo ","Zu ","Da ","Ban ","Yi ","Yao ","Tao ","Tuo ","Jia ","Hong ","Pao ","Yang ","Tomo ","Yin ","Jia ","Tao ","Ji ","Xie ","An ","An ","Hen ","Gong ","Kohaze ","Da ","Qiao ","Ting ","Wan ","Ying ","Sui ","Tiao ","Qiao ","Xuan ","Kong ","Beng ","Ta ","Zhang ","Bing ","Kuo ","Ju ","La ","Xie ","Rou ","Bang ","Yi ","Qiu ","Qiu ","He ","Xiao ","Mu ","Ju ","Jian ","Bian ","Di ","Jian ","On ","Tao ","Gou ","Ta ","Bei ","Xie ","Pan ","Ge ","Bi ","Kuo ","Tang ","Lou ","Gui ","Qiao ","Xue ","Ji ","Jian ","Jiang ","Chan ","Da ","Huo ","Xian ","Qian ","Du ","Wa ","Jian ","Lan ","Wei ","Ren ","Fu ","Mei ","Juan ","Ge ","Wei ","Qiao ","Han ","Chang ","[?] ","Rou ","Xun ","She ","Wei ","Ge ","Bei ","Tao ","Gou ","Yun ","[?] ","Bi ","Wei ","Hui ","Du ","Wa ","Du ","Wei ","Ren ","Fu ","Han ","Wei ","Yun ","Tao ","Jiu ","Jiu ","Xian ","Xie ","Xian ","Ji ","Yin ","Za ","Yun ","Shao ","Le ","Peng ","Heng ","Ying ","Yun ","Peng ","Yin ","Yin ","Xiang "]});var fH=v((rSe,pH)=>{pH.exports=["Hu ","Ye ","Ding ","Qing ","Pan ","Xiang ","Shun ","Han ","Xu ","Yi ","Xu ","Gu ","Song ","Kui ","Qi ","Hang ","Yu ","Wan ","Ban ","Dun ","Di ","Dan ","Pan ","Po ","Ling ","Ce ","Jing ","Lei ","He ","Qiao ","E ","E ","Wei ","Jie ","Gua ","Shen ","Yi ","Shen ","Hai ","Dui ","Pian ","Ping ","Lei ","Fu ","Jia ","Tou ","Hui ","Kui ","Jia ","Le ","Tian ","Cheng ","Ying ","Jun ","Hu ","Han ","Jing ","Tui ","Tui ","Pin ","Lai ","Tui ","Zi ","Zi ","Chui ","Ding ","Lai ","Yan ","Han ","Jian ","Ke ","Cui ","Jiong ","Qin ","Yi ","Sai ","Ti ","E ","E ","Yan ","Hun ","Kan ","Yong ","Zhuan ","Yan ","Xian ","Xin ","Yi ","Yuan ","Sang ","Dian ","Dian ","Jiang ","Ku ","Lei ","Liao ","Piao ","Yi ","Man ","Qi ","Rao ","Hao ","Qiao ","Gu ","Xun ","Qian ","Hui ","Zhan ","Ru ","Hong ","Bin ","Xian ","Pin ","Lu ","Lan ","Nie ","Quan ","Ye ","Ding ","Qing ","Han ","Xiang ","Shun ","Xu ","Xu ","Wan ","Gu ","Dun ","Qi ","Ban ","Song ","Hang ","Yu ","Lu ","Ling ","Po ","Jing ","Jie ","Jia ","Tian ","Han ","Ying ","Jiong ","Hai ","Yi ","Pin ","Hui ","Tui ","Han ","Ying ","Ying ","Ke ","Ti ","Yong ","E ","Zhuan ","Yan ","E ","Nie ","Man ","Dian ","Sang ","Hao ","Lei ","Zhan ","Ru ","Pin ","Quan ","Feng ","Biao ","Oroshi ","Fu ","Xia ","Zhan ","Biao ","Sa ","Ba ","Tai ","Lie ","Gua ","Xuan ","Shao ","Ju ","Bi ","Si ","Wei ","Yang ","Yao ","Sou ","Kai ","Sao ","Fan ","Liu ","Xi ","Liao ","Piao ","Piao ","Liu ","Biao ","Biao ","Biao ","Liao ","[?] ","Se ","Feng ","Biao ","Feng ","Yang ","Zhan ","Biao ","Sa ","Ju ","Si ","Sou ","Yao ","Liu ","Piao ","Biao ","Biao ","Fei ","Fan ","Fei ","Fei ","Shi ","Shi ","Can ","Ji ","Ding ","Si ","Tuo ","Zhan ","Sun ","Xiang ","Tun ","Ren ","Yu ","Juan ","Chi ","Yin ","Fan ","Fan ","Sun ","Yin ","Zhu ","Yi ","Zhai ","Bi ","Jie ","Tao ","Liu ","Ci ","Tie ","Si ","Bao ","Shi ","Duo "]});var bH=v((oSe,mH)=>{mH.exports=["Hai ","Ren ","Tian ","Jiao ","Jia ","Bing ","Yao ","Tong ","Ci ","Xiang ","Yang ","Yang ","Er ","Yan ","Le ","Yi ","Can ","Bo ","Nei ","E ","Bu ","Jun ","Dou ","Su ","Yu ","Shi ","Yao ","Hun ","Guo ","Shi ","Jian ","Zhui ","Bing ","Xian ","Bu ","Ye ","Tan ","Fei ","Zhang ","Wei ","Guan ","E ","Nuan ","Hun ","Hu ","Huang ","Tie ","Hui ","Jian ","Hou ","He ","Xing ","Fen ","Wei ","Gu ","Cha ","Song ","Tang ","Bo ","Gao ","Xi ","Kui ","Liu ","Sou ","Tao ","Ye ","Yun ","Mo ","Tang ","Man ","Bi ","Yu ","Xiu ","Jin ","San ","Kui ","Zhuan ","Shan ","Chi ","Dan ","Yi ","Ji ","Rao ","Cheng ","Yong ","Tao ","Hui ","Xiang ","Zhan ","Fen ","Hai ","Meng ","Yan ","Mo ","Chan ","Xiang ","Luo ","Zuan ","Nang ","Shi ","Ding ","Ji ","Tuo ","Xing ","Tun ","Xi ","Ren ","Yu ","Chi ","Fan ","Yin ","Jian ","Shi ","Bao ","Si ","Duo ","Yi ","Er ","Rao ","Xiang ","Jia ","Le ","Jiao ","Yi ","Bing ","Bo ","Dou ","E ","Yu ","Nei ","Jun ","Guo ","Hun ","Xian ","Guan ","Cha ","Kui ","Gu ","Sou ","Chan ","Ye ","Mo ","Bo ","Liu ","Xiu ","Jin ","Man ","San ","Zhuan ","Nang ","Shou ","Kui ","Guo ","Xiang ","Fen ","Ba ","Ni ","Bi ","Bo ","Tu ","Han ","Fei ","Jian ","An ","Ai ","Fu ","Xian ","Wen ","Xin ","Fen ","Bin ","Xing ","Ma ","Yu ","Feng ","Han ","Di ","Tuo ","Tuo ","Chi ","Xun ","Zhu ","Zhi ","Pei ","Xin ","Ri ","Sa ","Yin ","Wen ","Zhi ","Dan ","Lu ","You ","Bo ","Bao ","Kuai ","Tuo ","Yi ","Qu ","[?] ","Qu ","Jiong ","Bo ","Zhao ","Yuan ","Peng ","Zhou ","Ju ","Zhu ","Nu ","Ju ","Pi ","Zang ","Jia ","Ling ","Zhen ","Tai ","Fu ","Yang ","Shi ","Bi ","Tuo ","Tuo ","Si ","Liu ","Ma ","Pian ","Tao ","Zhi ","Rong ","Teng ","Dong ","Xun ","Quan ","Shen ","Jiong ","Er ","Hai ","Bo ","Zhu ","Yin ","Luo ","Shuu ","Dan ","Xie ","Liu ","Ju ","Song ","Qin ","Mang ","Liang ","Han ","Tu ","Xuan ","Tui ","Jun "]});var vH=v((sSe,yH)=>{yH.exports=["E ","Cheng ","Xin ","Ai ","Lu ","Zhui ","Zhou ","She ","Pian ","Kun ","Tao ","Lai ","Zong ","Ke ","Qi ","Qi ","Yan ","Fei ","Sao ","Yan ","Jie ","Yao ","Wu ","Pian ","Cong ","Pian ","Qian ","Fei ","Huang ","Jian ","Huo ","Yu ","Ti ","Quan ","Xia ","Zong ","Kui ","Rou ","Si ","Gua ","Tuo ","Kui ","Sou ","Qian ","Cheng ","Zhi ","Liu ","Pang ","Teng ","Xi ","Cao ","Du ","Yan ","Yuan ","Zou ","Sao ","Shan ","Li ","Zhi ","Shuang ","Lu ","Xi ","Luo ","Zhang ","Mo ","Ao ","Can ","Piao ","Cong ","Qu ","Bi ","Zhi ","Yu ","Xu ","Hua ","Bo ","Su ","Xiao ","Lin ","Chan ","Dun ","Liu ","Tuo ","Zeng ","Tan ","Jiao ","Tie ","Yan ","Luo ","Zhan ","Jing ","Yi ","Ye ","Tuo ","Bin ","Zou ","Yan ","Peng ","Lu ","Teng ","Xiang ","Ji ","Shuang ","Ju ","Xi ","Huan ","Li ","Biao ","Ma ","Yu ","Tuo ","Xun ","Chi ","Qu ","Ri ","Bo ","Lu ","Zang ","Shi ","Si ","Fu ","Ju ","Zou ","Zhu ","Tuo ","Nu ","Jia ","Yi ","Tai ","Xiao ","Ma ","Yin ","Jiao ","Hua ","Luo ","Hai ","Pian ","Biao ","Li ","Cheng ","Yan ","Xin ","Qin ","Jun ","Qi ","Qi ","Ke ","Zhui ","Zong ","Su ","Can ","Pian ","Zhi ","Kui ","Sao ","Wu ","Ao ","Liu ","Qian ","Shan ","Piao ","Luo ","Cong ","Chan ","Zou ","Ji ","Shuang ","Xiang ","Gu ","Wei ","Wei ","Wei ","Yu ","Gan ","Yi ","Ang ","Tou ","Xie ","Bao ","Bi ","Chi ","Ti ","Di ","Ku ","Hai ","Qiao ","Gou ","Kua ","Ge ","Tui ","Geng ","Pian ","Bi ","Ke ","Ka ","Yu ","Sui ","Lou ","Bo ","Xiao ","Pang ","Bo ","Ci ","Kuan ","Bin ","Mo ","Liao ","Lou ","Nao ","Du ","Zang ","Sui ","Ti ","Bin ","Kuan ","Lu ","Gao ","Gao ","Qiao ","Kao ","Qiao ","Lao ","Zao ","Biao ","Kun ","Kun ","Ti ","Fang ","Xiu ","Ran ","Mao ","Dan ","Kun ","Bin ","Fa ","Tiao ","Peng ","Zi ","Fa ","Ran ","Ti ","Pao ","Pi ","Mao ","Fu ","Er ","Rong ","Qu ","Gong ","Xiu ","Gua ","Ji ","Peng ","Zhua ","Shao ","Sha "]});var xH=v((aSe,wH)=>{wH.exports=["Ti ","Li ","Bin ","Zong ","Ti ","Peng ","Song ","Zheng ","Quan ","Zong ","Shun ","Jian ","Duo ","Hu ","La ","Jiu ","Qi ","Lian ","Zhen ","Bin ","Peng ","Mo ","San ","Man ","Man ","Seng ","Xu ","Lie ","Qian ","Qian ","Nong ","Huan ","Kuai ","Ning ","Bin ","Lie ","Rang ","Dou ","Dou ","Nao ","Hong ","Xi ","Dou ","Han ","Dou ","Dou ","Jiu ","Chang ","Yu ","Yu ","Li ","Juan ","Fu ","Qian ","Gui ","Zong ","Liu ","Gui ","Shang ","Yu ","Gui ","Mei ","Ji ","Qi ","Jie ","Kui ","Hun ","Ba ","Po ","Mei ","Xu ","Yan ","Xiao ","Liang ","Yu ","Tui ","Qi ","Wang ","Liang ","Wei ","Jian ","Chi ","Piao ","Bi ","Mo ","Ji ","Xu ","Chou ","Yan ","Zhan ","Yu ","Dao ","Ren ","Ji ","Eri ","Gong ","Tuo ","Diao ","Ji ","Xu ","E ","E ","Sha ","Hang ","Tun ","Mo ","Jie ","Shen ","Fan ","Yuan ","Bi ","Lu ","Wen ","Hu ","Lu ","Za ","Fang ","Fen ","Na ","You ","Namazu ","Todo ","He ","Xia ","Qu ","Han ","Pi ","Ling ","Tuo ","Bo ","Qiu ","Ping ","Fu ","Bi ","Ji ","Wei ","Ju ","Diao ","Bo ","You ","Gun ","Pi ","Nian ","Xing ","Tai ","Bao ","Fu ","Zha ","Ju ","Gu ","Kajika ","Tong ","[?] ","Ta ","Jie ","Shu ","Hou ","Xiang ","Er ","An ","Wei ","Tiao ","Zhu ","Yin ","Lie ","Luo ","Tong ","Yi ","Qi ","Bing ","Wei ","Jiao ","Bu ","Gui ","Xian ","Ge ","Hui ","Bora ","Mate ","Kao ","Gori ","Duo ","Jun ","Ti ","Man ","Xiao ","Za ","Sha ","Qin ","Yu ","Nei ","Zhe ","Gun ","Geng ","Su ","Wu ","Qiu ","Ting ","Fu ","Wan ","You ","Li ","Sha ","Sha ","Gao ","Meng ","Ugui ","Asari ","Subashiri ","Kazunoko ","Yong ","Ni ","Zi ","Qi ","Qing ","Xiang ","Nei ","Chun ","Ji ","Diao ","Qie ","Gu ","Zhou ","Dong ","Lai ","Fei ","Ni ","Yi ","Kun ","Lu ","Jiu ","Chang ","Jing ","Lun ","Ling ","Zou ","Li ","Meng ","Zong ","Zhi ","Nian ","Shachi ","Dojou ","Sukesou ","Shi ","Shen ","Hun ","Shi ","Hou ","Xing ","Zhu ","La ","Zong ","Ji ","Bian ","Bian "]});var SH=v((lSe,CH)=>{CH.exports=["Huan ","Quan ","Ze ","Wei ","Wei ","Yu ","Qun ","Rou ","Die ","Huang ","Lian ","Yan ","Qiu ","Qiu ","Jian ","Bi ","E ","Yang ","Fu ","Sai ","Jian ","Xia ","Tuo ","Hu ","Muroaji ","Ruo ","Haraka ","Wen ","Jian ","Hao ","Wu ","Fang ","Sao ","Liu ","Ma ","Shi ","Shi ","Yin ","Z ","Teng ","Ta ","Yao ","Ge ","Rong ","Qian ","Qi ","Wen ","Ruo ","Hatahata ","Lian ","Ao ","Le ","Hui ","Min ","Ji ","Tiao ","Qu ","Jian ","Sao ","Man ","Xi ","Qiu ","Biao ","Ji ","Ji ","Zhu ","Jiang ","Qiu ","Zhuan ","Yong ","Zhang ","Kang ","Xue ","Bie ","Jue ","Qu ","Xiang ","Bo ","Jiao ","Xun ","Su ","Huang ","Zun ","Shan ","Shan ","Fan ","Jue ","Lin ","Xun ","Miao ","Xi ","Eso ","Kyou ","Fen ","Guan ","Hou ","Kuai ","Zei ","Sao ","Zhan ","Gan ","Gui ","Sheng ","Li ","Chang ","Hatahata ","Shiira ","Mutsu ","Ru ","Ji ","Xu ","Huo ","Shiira ","Li ","Lie ","Li ","Mie ","Zhen ","Xiang ","E ","Lu ","Guan ","Li ","Xian ","Yu ","Dao ","Ji ","You ","Tun ","Lu ","Fang ","Ba ","He ","Bo ","Ping ","Nian ","Lu ","You ","Zha ","Fu ","Bo ","Bao ","Hou ","Pi ","Tai ","Gui ","Jie ","Kao ","Wei ","Er ","Tong ","Ze ","Hou ","Kuai ","Ji ","Jiao ","Xian ","Za ","Xiang ","Xun ","Geng ","Li ","Lian ","Jian ","Li ","Shi ","Tiao ","Gun ","Sha ","Wan ","Jun ","Ji ","Yong ","Qing ","Ling ","Qi ","Zou ","Fei ","Kun ","Chang ","Gu ","Ni ","Nian ","Diao ","Jing ","Shen ","Shi ","Zi ","Fen ","Die ","Bi ","Chang ","Shi ","Wen ","Wei ","Sai ","E ","Qiu ","Fu ","Huang ","Quan ","Jiang ","Bian ","Sao ","Ao ","Qi ","Ta ","Yin ","Yao ","Fang ","Jian ","Le ","Biao ","Xue ","Bie ","Man ","Min ","Yong ","Wei ","Xi ","Jue ","Shan ","Lin ","Zun ","Huo ","Gan ","Li ","Zhan ","Guan ","Niao ","Yi ","Fu ","Li ","Jiu ","Bu ","Yan ","Fu ","Diao ","Ji ","Feng ","Nio ","Gan ","Shi ","Feng ","Ming ","Bao ","Yuan ","Zhi ","Hu ","Qin ","Fu ","Fen ","Wen ","Jian ","Shi ","Yu "]});var TH=v((uSe,DH)=>{DH.exports=["Fou ","Yiao ","Jue ","Jue ","Pi ","Huan ","Zhen ","Bao ","Yan ","Ya ","Zheng ","Fang ","Feng ","Wen ","Ou ","Te ","Jia ","Nu ","Ling ","Mie ","Fu ","Tuo ","Wen ","Li ","Bian ","Zhi ","Ge ","Yuan ","Zi ","Qu ","Xiao ","Zhi ","Dan ","Ju ","You ","Gu ","Zhong ","Yu ","Yang ","Rong ","Ya ","Tie ","Yu ","Shigi ","Ying ","Zhui ","Wu ","Er ","Gua ","Ai ","Zhi ","Yan ","Heng ","Jiao ","Ji ","Lie ","Zhu ","Ren ","Yi ","Hong ","Luo ","Ru ","Mou ","Ge ","Ren ","Jiao ","Xiu ","Zhou ","Zhi ","Luo ","Chidori ","Toki ","Ten ","Luan ","Jia ","Ji ","Yu ","Huan ","Tuo ","Bu ","Wu ","Juan ","Yu ","Bo ","Xun ","Xun ","Bi ","Xi ","Jun ","Ju ","Tu ","Jing ","Ti ","E ","E ","Kuang ","Hu ","Wu ","Shen ","Lai ","Ikaruga ","Kakesu ","Lu ","Ping ","Shu ","Fu ","An ","Zhao ","Peng ","Qin ","Qian ","Bei ","Diao ","Lu ","Que ","Jian ","Ju ","Tu ","Ya ","Yuan ","Qi ","Li ","Ye ","Zhui ","Kong ","Zhui ","Kun ","Sheng ","Qi ","Jing ","Yi ","Yi ","Jing ","Zi ","Lai ","Dong ","Qi ","Chun ","Geng ","Ju ","Qu ","Isuka ","Kikuitadaki ","Ji ","Shu ","[?] ","Chi ","Miao ","Rou ","An ","Qiu ","Ti ","Hu ","Ti ","E ","Jie ","Mao ","Fu ","Chun ","Tu ","Yan ","He ","Yuan ","Pian ","Yun ","Mei ","Hu ","Ying ","Dun ","Mu ","Ju ","Tsugumi ","Cang ","Fang ","Gu ","Ying ","Yuan ","Xuan ","Weng ","Shi ","He ","Chu ","Tang ","Xia ","Ruo ","Liu ","Ji ","Gu ","Jian ","Zhun ","Han ","Zi ","Zi ","Ni ","Yao ","Yan ","Ji ","Li ","Tian ","Kou ","Ti ","Ti ","Ni ","Tu ","Ma ","Jiao ","Gao ","Tian ","Chen ","Li ","Zhuan ","Zhe ","Ao ","Yao ","Yi ","Ou ","Chi ","Zhi ","Liao ","Rong ","Lou ","Bi ","Shuang ","Zhuo ","Yu ","Wu ","Jue ","Yin ","Quan ","Si ","Jiao ","Yi ","Hua ","Bi ","Ying ","Su ","Huang ","Fan ","Jiao ","Liao ","Yan ","Kao ","Jiu ","Xian ","Xian ","Tu ","Mai ","Zun ","Yu ","Ying ","Lu ","Tuan ","Xian ","Xue ","Yi ","Pi "]});var PH=v((cSe,kH)=>{kH.exports=["Shu ","Luo ","Qi ","Yi ","Ji ","Zhe ","Yu ","Zhan ","Ye ","Yang ","Pi ","Ning ","Huo ","Mi ","Ying ","Meng ","Di ","Yue ","Yu ","Lei ","Bao ","Lu ","He ","Long ","Shuang ","Yue ","Ying ","Guan ","Qu ","Li ","Luan ","Niao ","Jiu ","Ji ","Yuan ","Ming ","Shi ","Ou ","Ya ","Cang ","Bao ","Zhen ","Gu ","Dong ","Lu ","Ya ","Xiao ","Yang ","Ling ","Zhi ","Qu ","Yuan ","Xue ","Tuo ","Si ","Zhi ","Er ","Gua ","Xiu ","Heng ","Zhou ","Ge ","Luan ","Hong ","Wu ","Bo ","Li ","Juan ","Hu ","E ","Yu ","Xian ","Ti ","Wu ","Que ","Miao ","An ","Kun ","Bei ","Peng ","Qian ","Chun ","Geng ","Yuan ","Su ","Hu ","He ","E ","Gu ","Qiu ","Zi ","Mei ","Mu ","Ni ","Yao ","Weng ","Liu ","Ji ","Ni ","Jian ","He ","Yi ","Ying ","Zhe ","Liao ","Liao ","Jiao ","Jiu ","Yu ","Lu ","Xuan ","Zhan ","Ying ","Huo ","Meng ","Guan ","Shuang ","Lu ","Jin ","Ling ","Jian ","Xian ","Cuo ","Jian ","Jian ","Yan ","Cuo ","Lu ","You ","Cu ","Ji ","Biao ","Cu ","Biao ","Zhu ","Jun ","Zhu ","Jian ","Mi ","Mi ","Wu ","Liu ","Chen ","Jun ","Lin ","Ni ","Qi ","Lu ","Jiu ","Jun ","Jing ","Li ","Xiang ","Yan ","Jia ","Mi ","Li ","She ","Zhang ","Lin ","Jing ","Ji ","Ling ","Yan ","Cu ","Mai ","Mai ","Ge ","Chao ","Fu ","Mian ","Mian ","Fu ","Pao ","Qu ","Qu ","Mou ","Fu ","Xian ","Lai ","Qu ","Mian ","[?] ","Feng ","Fu ","Qu ","Mian ","Ma ","Mo ","Mo ","Hui ","Ma ","Zou ","Nen ","Fen ","Huang ","Huang ","Jin ","Guang ","Tian ","Tou ","Heng ","Xi ","Kuang ","Heng ","Shu ","Li ","Nian ","Chi ","Hei ","Hei ","Yi ","Qian ","Dan ","Xi ","Tuan ","Mo ","Mo ","Qian ","Dai ","Chu ","You ","Dian ","Yi ","Xia ","Yan ","Qu ","Mei ","Yan ","Jing ","Yu ","Li ","Dang ","Du ","Can ","Yin ","An ","Yan ","Tan ","An ","Zhen ","Dai ","Can ","Yi ","Mei ","Dan ","Yan ","Du ","Lu ","Zhi ","Fen ","Fu ","Fu ","Min ","Min ","Yuan "]});var _H=v((dSe,RH)=>{RH.exports=["Cu ","Qu ","Chao ","Wa ","Zhu ","Zhi ","Mang ","Ao ","Bie ","Tuo ","Bi ","Yuan ","Chao ","Tuo ","Ding ","Mi ","Nai ","Ding ","Zi ","Gu ","Gu ","Dong ","Fen ","Tao ","Yuan ","Pi ","Chang ","Gao ","Qi ","Yuan ","Tang ","Teng ","Shu ","Shu ","Fen ","Fei ","Wen ","Ba ","Diao ","Tuo ","Tong ","Qu ","Sheng ","Shi ","You ","Shi ","Ting ","Wu ","Nian ","Jing ","Hun ","Ju ","Yan ","Tu ","Ti ","Xi ","Xian ","Yan ","Lei ","Bi ","Yao ","Qiu ","Han ","Wu ","Wu ","Hou ","Xi ","Ge ","Zha ","Xiu ","Weng ","Zha ","Nong ","Nang ","Qi ","Zhai ","Ji ","Zi ","Ji ","Ji ","Qi ","Ji ","Chi ","Chen ","Chen ","He ","Ya ","Ken ","Xie ","Pao ","Cuo ","Shi ","Zi ","Chi ","Nian ","Ju ","Tiao ","Ling ","Ling ","Chu ","Quan ","Xie ","Ken ","Nie ","Jiu ","Yao ","Chuo ","Kun ","Yu ","Chu ","Yi ","Ni ","Cuo ","Zou ","Qu ","Nen ","Xian ","Ou ","E ","Wo ","Yi ","Chuo ","Zou ","Dian ","Chu ","Jin ","Ya ","Chi ","Chen ","He ","Ken ","Ju ","Ling ","Pao ","Tiao ","Zi ","Ken ","Yu ","Chuo ","Qu ","Wo ","Long ","Pang ","Gong ","Pang ","Yan ","Long ","Long ","Gong ","Kan ","Ta ","Ling ","Ta ","Long ","Gong ","Kan ","Gui ","Qiu ","Bie ","Gui ","Yue ","Chui ","He ","Jue ","Xie ","Yu ","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var IH=v((hSe,EH)=>{EH.exports=["it","ix","i","ip","iet","iex","ie","iep","at","ax","a","ap","uox","uo","uop","ot","ox","o","op","ex","e","wu","bit","bix","bi","bip","biet","biex","bie","biep","bat","bax","ba","bap","buox","buo","buop","bot","box","bo","bop","bex","be","bep","but","bux","bu","bup","burx","bur","byt","byx","by","byp","byrx","byr","pit","pix","pi","pip","piex","pie","piep","pat","pax","pa","pap","puox","puo","puop","pot","pox","po","pop","put","pux","pu","pup","purx","pur","pyt","pyx","py","pyp","pyrx","pyr","bbit","bbix","bbi","bbip","bbiet","bbiex","bbie","bbiep","bbat","bbax","bba","bbap","bbuox","bbuo","bbuop","bbot","bbox","bbo","bbop","bbex","bbe","bbep","bbut","bbux","bbu","bbup","bburx","bbur","bbyt","bbyx","bby","bbyp","nbit","nbix","nbi","nbip","nbiex","nbie","nbiep","nbat","nbax","nba","nbap","nbot","nbox","nbo","nbop","nbut","nbux","nbu","nbup","nburx","nbur","nbyt","nbyx","nby","nbyp","nbyrx","nbyr","hmit","hmix","hmi","hmip","hmiex","hmie","hmiep","hmat","hmax","hma","hmap","hmuox","hmuo","hmuop","hmot","hmox","hmo","hmop","hmut","hmux","hmu","hmup","hmurx","hmur","hmyx","hmy","hmyp","hmyrx","hmyr","mit","mix","mi","mip","miex","mie","miep","mat","max","ma","map","muot","muox","muo","muop","mot","mox","mo","mop","mex","me","mut","mux","mu","mup","murx","mur","myt","myx","my","myp","fit","fix","fi","fip","fat","fax","fa","fap","fox","fo","fop","fut","fux","fu","fup","furx","fur","fyt","fyx","fy","fyp","vit","vix","vi","vip","viet","viex","vie","viep","vat","vax","va","vap","vot","vox","vo","vop","vex","vep","vut","vux","vu","vup","vurx","vur","vyt","vyx","vy","vyp","vyrx","vyr"]});var FH=v((gSe,LH)=>{LH.exports=["dit","dix","di","dip","diex","die","diep","dat","dax","da","dap","duox","duo","dot","dox","do","dop","dex","de","dep","dut","dux","du","dup","durx","dur","tit","tix","ti","tip","tiex","tie","tiep","tat","tax","ta","tap","tuot","tuox","tuo","tuop","tot","tox","to","top","tex","te","tep","tut","tux","tu","tup","turx","tur","ddit","ddix","ddi","ddip","ddiex","ddie","ddiep","ddat","ddax","dda","ddap","dduox","dduo","dduop","ddot","ddox","ddo","ddop","ddex","dde","ddep","ddut","ddux","ddu","ddup","ddurx","ddur","ndit","ndix","ndi","ndip","ndiex","ndie","ndat","ndax","nda","ndap","ndot","ndox","ndo","ndop","ndex","nde","ndep","ndut","ndux","ndu","ndup","ndurx","ndur","hnit","hnix","hni","hnip","hniet","hniex","hnie","hniep","hnat","hnax","hna","hnap","hnuox","hnuo","hnot","hnox","hnop","hnex","hne","hnep","hnut","nit","nix","ni","nip","niex","nie","niep","nax","na","nap","nuox","nuo","nuop","not","nox","no","nop","nex","ne","nep","nut","nux","nu","nup","nurx","nur","hlit","hlix","hli","hlip","hliex","hlie","hliep","hlat","hlax","hla","hlap","hluox","hluo","hluop","hlox","hlo","hlop","hlex","hle","hlep","hlut","hlux","hlu","hlup","hlurx","hlur","hlyt","hlyx","hly","hlyp","hlyrx","hlyr","lit","lix","li","lip","liet","liex","lie","liep","lat","lax","la","lap","luot","luox","luo","luop","lot","lox","lo","lop","lex","le","lep","lut","lux","lu","lup","lurx","lur","lyt","lyx","ly","lyp","lyrx","lyr","git","gix","gi","gip","giet","giex","gie","giep","gat","gax","ga","gap","guot","guox","guo","guop","got","gox","go","gop","get","gex","ge","gep","gut","gux","gu","gup","gurx","gur","kit","kix","ki","kip","kiex","kie","kiep","kat"]});var jH=v((pSe,MH)=>{MH.exports=["kax","ka","kap","kuox","kuo","kuop","kot","kox","ko","kop","ket","kex","ke","kep","kut","kux","ku","kup","kurx","kur","ggit","ggix","ggi","ggiex","ggie","ggiep","ggat","ggax","gga","ggap","gguot","gguox","gguo","gguop","ggot","ggox","ggo","ggop","gget","ggex","gge","ggep","ggut","ggux","ggu","ggup","ggurx","ggur","mgiex","mgie","mgat","mgax","mga","mgap","mguox","mguo","mguop","mgot","mgox","mgo","mgop","mgex","mge","mgep","mgut","mgux","mgu","mgup","mgurx","mgur","hxit","hxix","hxi","hxip","hxiet","hxiex","hxie","hxiep","hxat","hxax","hxa","hxap","hxuot","hxuox","hxuo","hxuop","hxot","hxox","hxo","hxop","hxex","hxe","hxep","ngiex","ngie","ngiep","ngat","ngax","nga","ngap","nguot","nguox","nguo","ngot","ngox","ngo","ngop","ngex","nge","ngep","hit","hiex","hie","hat","hax","ha","hap","huot","huox","huo","huop","hot","hox","ho","hop","hex","he","hep","wat","wax","wa","wap","wuox","wuo","wuop","wox","wo","wop","wex","we","wep","zit","zix","zi","zip","ziex","zie","ziep","zat","zax","za","zap","zuox","zuo","zuop","zot","zox","zo","zop","zex","ze","zep","zut","zux","zu","zup","zurx","zur","zyt","zyx","zy","zyp","zyrx","zyr","cit","cix","ci","cip","ciet","ciex","cie","ciep","cat","cax","ca","cap","cuox","cuo","cuop","cot","cox","co","cop","cex","ce","cep","cut","cux","cu","cup","curx","cur","cyt","cyx","cy","cyp","cyrx","cyr","zzit","zzix","zzi","zzip","zziet","zziex","zzie","zziep","zzat","zzax","zza","zzap","zzox","zzo","zzop","zzex","zze","zzep","zzux","zzu","zzup","zzurx","zzur","zzyt","zzyx","zzy","zzyp","zzyrx","zzyr","nzit","nzix","nzi","nzip","nziex","nzie","nziep","nzat","nzax","nza","nzap","nzuox","nzuo","nzox","nzop","nzex","nze","nzux","nzu"]});var AH=v((fSe,OH)=>{OH.exports=["nzup","nzurx","nzur","nzyt","nzyx","nzy","nzyp","nzyrx","nzyr","sit","six","si","sip","siex","sie","siep","sat","sax","sa","sap","suox","suo","suop","sot","sox","so","sop","sex","se","sep","sut","sux","su","sup","surx","sur","syt","syx","sy","syp","syrx","syr","ssit","ssix","ssi","ssip","ssiex","ssie","ssiep","ssat","ssax","ssa","ssap","ssot","ssox","sso","ssop","ssex","sse","ssep","ssut","ssux","ssu","ssup","ssyt","ssyx","ssy","ssyp","ssyrx","ssyr","zhat","zhax","zha","zhap","zhuox","zhuo","zhuop","zhot","zhox","zho","zhop","zhet","zhex","zhe","zhep","zhut","zhux","zhu","zhup","zhurx","zhur","zhyt","zhyx","zhy","zhyp","zhyrx","zhyr","chat","chax","cha","chap","chuot","chuox","chuo","chuop","chot","chox","cho","chop","chet","chex","che","chep","chux","chu","chup","churx","chur","chyt","chyx","chy","chyp","chyrx","chyr","rrax","rra","rruox","rruo","rrot","rrox","rro","rrop","rret","rrex","rre","rrep","rrut","rrux","rru","rrup","rrurx","rrur","rryt","rryx","rry","rryp","rryrx","rryr","nrat","nrax","nra","nrap","nrox","nro","nrop","nret","nrex","nre","nrep","nrut","nrux","nru","nrup","nrurx","nrur","nryt","nryx","nry","nryp","nryrx","nryr","shat","shax","sha","shap","shuox","shuo","shuop","shot","shox","sho","shop","shet","shex","she","shep","shut","shux","shu","shup","shurx","shur","shyt","shyx","shy","shyp","shyrx","shyr","rat","rax","ra","rap","ruox","ruo","ruop","rot","rox","ro","rop","rex","re","rep","rut","rux","ru","rup","rurx","rur","ryt","ryx","ry","ryp","ryrx","ryr","jit","jix","ji","jip","jiet","jiex","jie","jiep","juot","juox","juo","juop","jot","jox","jo","jop","jut","jux","ju","jup","jurx","jur","jyt","jyx","jy","jyp","jyrx","jyr","qit","qix","qi","qip"]});var HH=v((mSe,NH)=>{NH.exports=["qiet","qiex","qie","qiep","quot","quox","quo","quop","qot","qox","qo","qop","qut","qux","qu","qup","qurx","qur","qyt","qyx","qy","qyp","qyrx","qyr","jjit","jjix","jji","jjip","jjiet","jjiex","jjie","jjiep","jjuox","jjuo","jjuop","jjot","jjox","jjo","jjop","jjut","jjux","jju","jjup","jjurx","jjur","jjyt","jjyx","jjy","jjyp","njit","njix","nji","njip","njiet","njiex","njie","njiep","njuox","njuo","njot","njox","njo","njop","njux","nju","njup","njurx","njur","njyt","njyx","njy","njyp","njyrx","njyr","nyit","nyix","nyi","nyip","nyiet","nyiex","nyie","nyiep","nyuox","nyuo","nyuop","nyot","nyox","nyo","nyop","nyut","nyux","nyu","nyup","xit","xix","xi","xip","xiet","xiex","xie","xiep","xuox","xuo","xot","xox","xo","xop","xyt","xyx","xy","xyp","xyrx","xyr","yit","yix","yi","yip","yiet","yiex","yie","yiep","yuot","yuox","yuo","yuop","yot","yox","yo","yop","yut","yux","yu","yup","yurx","yur","yyt","yyx","yy","yyp","yyrx","yyr","[?]","[?]","[?]","Qot","Li","Kit","Nyip","Cyp","Ssi","Ggop","Gep","Mi","Hxit","Lyr","Bbut","Mop","Yo","Put","Hxuo","Tat","Ga","[?]","[?]","Ddur","Bur","Gguo","Nyop","Tu","Op","Jjut","Zot","Pyt","Hmo","Yit","Vur","Shy","Vep","Za","Jo","[?]","Jjy","Got","Jjie","Wo","Du","Shur","Lie","Cy","Cuop","Cip","Hxop","Shat","[?]","Shop","Che","Zziet","[?]","Ke","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var qH=v((bSe,BH)=>{BH.exports=["ga","gag","gagg","gags","gan","ganj","ganh","gad","gal","galg","galm","galb","gals","galt","galp","galh","gam","gab","gabs","gas","gass","gang","gaj","gac","gak","gat","gap","gah","gae","gaeg","gaegg","gaegs","gaen","gaenj","gaenh","gaed","gael","gaelg","gaelm","gaelb","gaels","gaelt","gaelp","gaelh","gaem","gaeb","gaebs","gaes","gaess","gaeng","gaej","gaec","gaek","gaet","gaep","gaeh","gya","gyag","gyagg","gyags","gyan","gyanj","gyanh","gyad","gyal","gyalg","gyalm","gyalb","gyals","gyalt","gyalp","gyalh","gyam","gyab","gyabs","gyas","gyass","gyang","gyaj","gyac","gyak","gyat","gyap","gyah","gyae","gyaeg","gyaegg","gyaegs","gyaen","gyaenj","gyaenh","gyaed","gyael","gyaelg","gyaelm","gyaelb","gyaels","gyaelt","gyaelp","gyaelh","gyaem","gyaeb","gyaebs","gyaes","gyaess","gyaeng","gyaej","gyaec","gyaek","gyaet","gyaep","gyaeh","geo","geog","geogg","geogs","geon","geonj","geonh","geod","geol","geolg","geolm","geolb","geols","geolt","geolp","geolh","geom","geob","geobs","geos","geoss","geong","geoj","geoc","geok","geot","geop","geoh","ge","geg","gegg","gegs","gen","genj","genh","ged","gel","gelg","gelm","gelb","gels","gelt","gelp","gelh","gem","geb","gebs","ges","gess","geng","gej","gec","gek","get","gep","geh","gyeo","gyeog","gyeogg","gyeogs","gyeon","gyeonj","gyeonh","gyeod","gyeol","gyeolg","gyeolm","gyeolb","gyeols","gyeolt","gyeolp","gyeolh","gyeom","gyeob","gyeobs","gyeos","gyeoss","gyeong","gyeoj","gyeoc","gyeok","gyeot","gyeop","gyeoh","gye","gyeg","gyegg","gyegs","gyen","gyenj","gyenh","gyed","gyel","gyelg","gyelm","gyelb","gyels","gyelt","gyelp","gyelh","gyem","gyeb","gyebs","gyes","gyess","gyeng","gyej","gyec","gyek","gyet","gyep","gyeh","go","gog","gogg","gogs","gon","gonj","gonh","god","gol","golg","golm","golb","gols","golt","golp","golh","gom","gob","gobs","gos","goss","gong","goj","goc","gok","got","gop","goh","gwa","gwag","gwagg","gwags"]});var YH=v((ySe,WH)=>{WH.exports=["gwan","gwanj","gwanh","gwad","gwal","gwalg","gwalm","gwalb","gwals","gwalt","gwalp","gwalh","gwam","gwab","gwabs","gwas","gwass","gwang","gwaj","gwac","gwak","gwat","gwap","gwah","gwae","gwaeg","gwaegg","gwaegs","gwaen","gwaenj","gwaenh","gwaed","gwael","gwaelg","gwaelm","gwaelb","gwaels","gwaelt","gwaelp","gwaelh","gwaem","gwaeb","gwaebs","gwaes","gwaess","gwaeng","gwaej","gwaec","gwaek","gwaet","gwaep","gwaeh","goe","goeg","goegg","goegs","goen","goenj","goenh","goed","goel","goelg","goelm","goelb","goels","goelt","goelp","goelh","goem","goeb","goebs","goes","goess","goeng","goej","goec","goek","goet","goep","goeh","gyo","gyog","gyogg","gyogs","gyon","gyonj","gyonh","gyod","gyol","gyolg","gyolm","gyolb","gyols","gyolt","gyolp","gyolh","gyom","gyob","gyobs","gyos","gyoss","gyong","gyoj","gyoc","gyok","gyot","gyop","gyoh","gu","gug","gugg","gugs","gun","gunj","gunh","gud","gul","gulg","gulm","gulb","guls","gult","gulp","gulh","gum","gub","gubs","gus","guss","gung","guj","guc","guk","gut","gup","guh","gweo","gweog","gweogg","gweogs","gweon","gweonj","gweonh","gweod","gweol","gweolg","gweolm","gweolb","gweols","gweolt","gweolp","gweolh","gweom","gweob","gweobs","gweos","gweoss","gweong","gweoj","gweoc","gweok","gweot","gweop","gweoh","gwe","gweg","gwegg","gwegs","gwen","gwenj","gwenh","gwed","gwel","gwelg","gwelm","gwelb","gwels","gwelt","gwelp","gwelh","gwem","gweb","gwebs","gwes","gwess","gweng","gwej","gwec","gwek","gwet","gwep","gweh","gwi","gwig","gwigg","gwigs","gwin","gwinj","gwinh","gwid","gwil","gwilg","gwilm","gwilb","gwils","gwilt","gwilp","gwilh","gwim","gwib","gwibs","gwis","gwiss","gwing","gwij","gwic","gwik","gwit","gwip","gwih","gyu","gyug","gyugg","gyugs","gyun","gyunj","gyunh","gyud","gyul","gyulg","gyulm","gyulb","gyuls","gyult","gyulp","gyulh","gyum","gyub","gyubs","gyus","gyuss","gyung","gyuj","gyuc","gyuk","gyut","gyup","gyuh","geu","geug","geugg","geugs","geun","geunj","geunh","geud"]});var JH=v((vSe,ZH)=>{ZH.exports=["geul","geulg","geulm","geulb","geuls","geult","geulp","geulh","geum","geub","geubs","geus","geuss","geung","geuj","geuc","geuk","geut","geup","geuh","gyi","gyig","gyigg","gyigs","gyin","gyinj","gyinh","gyid","gyil","gyilg","gyilm","gyilb","gyils","gyilt","gyilp","gyilh","gyim","gyib","gyibs","gyis","gyiss","gying","gyij","gyic","gyik","gyit","gyip","gyih","gi","gig","gigg","gigs","gin","ginj","ginh","gid","gil","gilg","gilm","gilb","gils","gilt","gilp","gilh","gim","gib","gibs","gis","giss","ging","gij","gic","gik","git","gip","gih","gga","ggag","ggagg","ggags","ggan","gganj","gganh","ggad","ggal","ggalg","ggalm","ggalb","ggals","ggalt","ggalp","ggalh","ggam","ggab","ggabs","ggas","ggass","ggang","ggaj","ggac","ggak","ggat","ggap","ggah","ggae","ggaeg","ggaegg","ggaegs","ggaen","ggaenj","ggaenh","ggaed","ggael","ggaelg","ggaelm","ggaelb","ggaels","ggaelt","ggaelp","ggaelh","ggaem","ggaeb","ggaebs","ggaes","ggaess","ggaeng","ggaej","ggaec","ggaek","ggaet","ggaep","ggaeh","ggya","ggyag","ggyagg","ggyags","ggyan","ggyanj","ggyanh","ggyad","ggyal","ggyalg","ggyalm","ggyalb","ggyals","ggyalt","ggyalp","ggyalh","ggyam","ggyab","ggyabs","ggyas","ggyass","ggyang","ggyaj","ggyac","ggyak","ggyat","ggyap","ggyah","ggyae","ggyaeg","ggyaegg","ggyaegs","ggyaen","ggyaenj","ggyaenh","ggyaed","ggyael","ggyaelg","ggyaelm","ggyaelb","ggyaels","ggyaelt","ggyaelp","ggyaelh","ggyaem","ggyaeb","ggyaebs","ggyaes","ggyaess","ggyaeng","ggyaej","ggyaec","ggyaek","ggyaet","ggyaep","ggyaeh","ggeo","ggeog","ggeogg","ggeogs","ggeon","ggeonj","ggeonh","ggeod","ggeol","ggeolg","ggeolm","ggeolb","ggeols","ggeolt","ggeolp","ggeolh","ggeom","ggeob","ggeobs","ggeos","ggeoss","ggeong","ggeoj","ggeoc","ggeok","ggeot","ggeop","ggeoh","gge","ggeg","ggegg","ggegs","ggen","ggenj","ggenh","gged","ggel","ggelg","ggelm","ggelb","ggels","ggelt","ggelp","ggelh","ggem","ggeb","ggebs","gges","ggess","ggeng","ggej","ggec","ggek","gget","ggep","ggeh","ggyeo","ggyeog","ggyeogg","ggyeogs","ggyeon","ggyeonj","ggyeonh","ggyeod","ggyeol","ggyeolg","ggyeolm","ggyeolb"]});var $H=v((wSe,UH)=>{UH.exports=["ggyeols","ggyeolt","ggyeolp","ggyeolh","ggyeom","ggyeob","ggyeobs","ggyeos","ggyeoss","ggyeong","ggyeoj","ggyeoc","ggyeok","ggyeot","ggyeop","ggyeoh","ggye","ggyeg","ggyegg","ggyegs","ggyen","ggyenj","ggyenh","ggyed","ggyel","ggyelg","ggyelm","ggyelb","ggyels","ggyelt","ggyelp","ggyelh","ggyem","ggyeb","ggyebs","ggyes","ggyess","ggyeng","ggyej","ggyec","ggyek","ggyet","ggyep","ggyeh","ggo","ggog","ggogg","ggogs","ggon","ggonj","ggonh","ggod","ggol","ggolg","ggolm","ggolb","ggols","ggolt","ggolp","ggolh","ggom","ggob","ggobs","ggos","ggoss","ggong","ggoj","ggoc","ggok","ggot","ggop","ggoh","ggwa","ggwag","ggwagg","ggwags","ggwan","ggwanj","ggwanh","ggwad","ggwal","ggwalg","ggwalm","ggwalb","ggwals","ggwalt","ggwalp","ggwalh","ggwam","ggwab","ggwabs","ggwas","ggwass","ggwang","ggwaj","ggwac","ggwak","ggwat","ggwap","ggwah","ggwae","ggwaeg","ggwaegg","ggwaegs","ggwaen","ggwaenj","ggwaenh","ggwaed","ggwael","ggwaelg","ggwaelm","ggwaelb","ggwaels","ggwaelt","ggwaelp","ggwaelh","ggwaem","ggwaeb","ggwaebs","ggwaes","ggwaess","ggwaeng","ggwaej","ggwaec","ggwaek","ggwaet","ggwaep","ggwaeh","ggoe","ggoeg","ggoegg","ggoegs","ggoen","ggoenj","ggoenh","ggoed","ggoel","ggoelg","ggoelm","ggoelb","ggoels","ggoelt","ggoelp","ggoelh","ggoem","ggoeb","ggoebs","ggoes","ggoess","ggoeng","ggoej","ggoec","ggoek","ggoet","ggoep","ggoeh","ggyo","ggyog","ggyogg","ggyogs","ggyon","ggyonj","ggyonh","ggyod","ggyol","ggyolg","ggyolm","ggyolb","ggyols","ggyolt","ggyolp","ggyolh","ggyom","ggyob","ggyobs","ggyos","ggyoss","ggyong","ggyoj","ggyoc","ggyok","ggyot","ggyop","ggyoh","ggu","ggug","ggugg","ggugs","ggun","ggunj","ggunh","ggud","ggul","ggulg","ggulm","ggulb","gguls","ggult","ggulp","ggulh","ggum","ggub","ggubs","ggus","gguss","ggung","gguj","gguc","gguk","ggut","ggup","gguh","ggweo","ggweog","ggweogg","ggweogs","ggweon","ggweonj","ggweonh","ggweod","ggweol","ggweolg","ggweolm","ggweolb","ggweols","ggweolt","ggweolp","ggweolh","ggweom","ggweob","ggweobs","ggweos","ggweoss","ggweong","ggweoj","ggweoc","ggweok","ggweot","ggweop","ggweoh","ggwe","ggweg","ggwegg","ggwegs","ggwen","ggwenj","ggwenh","ggwed","ggwel","ggwelg","ggwelm","ggwelb","ggwels","ggwelt","ggwelp","ggwelh"]});var GH=v((xSe,XH)=>{XH.exports=["ggwem","ggweb","ggwebs","ggwes","ggwess","ggweng","ggwej","ggwec","ggwek","ggwet","ggwep","ggweh","ggwi","ggwig","ggwigg","ggwigs","ggwin","ggwinj","ggwinh","ggwid","ggwil","ggwilg","ggwilm","ggwilb","ggwils","ggwilt","ggwilp","ggwilh","ggwim","ggwib","ggwibs","ggwis","ggwiss","ggwing","ggwij","ggwic","ggwik","ggwit","ggwip","ggwih","ggyu","ggyug","ggyugg","ggyugs","ggyun","ggyunj","ggyunh","ggyud","ggyul","ggyulg","ggyulm","ggyulb","ggyuls","ggyult","ggyulp","ggyulh","ggyum","ggyub","ggyubs","ggyus","ggyuss","ggyung","ggyuj","ggyuc","ggyuk","ggyut","ggyup","ggyuh","ggeu","ggeug","ggeugg","ggeugs","ggeun","ggeunj","ggeunh","ggeud","ggeul","ggeulg","ggeulm","ggeulb","ggeuls","ggeult","ggeulp","ggeulh","ggeum","ggeub","ggeubs","ggeus","ggeuss","ggeung","ggeuj","ggeuc","ggeuk","ggeut","ggeup","ggeuh","ggyi","ggyig","ggyigg","ggyigs","ggyin","ggyinj","ggyinh","ggyid","ggyil","ggyilg","ggyilm","ggyilb","ggyils","ggyilt","ggyilp","ggyilh","ggyim","ggyib","ggyibs","ggyis","ggyiss","ggying","ggyij","ggyic","ggyik","ggyit","ggyip","ggyih","ggi","ggig","ggigg","ggigs","ggin","gginj","gginh","ggid","ggil","ggilg","ggilm","ggilb","ggils","ggilt","ggilp","ggilh","ggim","ggib","ggibs","ggis","ggiss","gging","ggij","ggic","ggik","ggit","ggip","ggih","na","nag","nagg","nags","nan","nanj","nanh","nad","nal","nalg","nalm","nalb","nals","nalt","nalp","nalh","nam","nab","nabs","nas","nass","nang","naj","nac","nak","nat","nap","nah","nae","naeg","naegg","naegs","naen","naenj","naenh","naed","nael","naelg","naelm","naelb","naels","naelt","naelp","naelh","naem","naeb","naebs","naes","naess","naeng","naej","naec","naek","naet","naep","naeh","nya","nyag","nyagg","nyags","nyan","nyanj","nyanh","nyad","nyal","nyalg","nyalm","nyalb","nyals","nyalt","nyalp","nyalh","nyam","nyab","nyabs","nyas","nyass","nyang","nyaj","nyac","nyak","nyat","nyap","nyah","nyae","nyaeg","nyaegg","nyaegs","nyaen","nyaenj","nyaenh","nyaed","nyael","nyaelg","nyaelm","nyaelb","nyaels","nyaelt","nyaelp","nyaelh","nyaem","nyaeb","nyaebs","nyaes"]});var KH=v((CSe,zH)=>{zH.exports=["nyaess","nyaeng","nyaej","nyaec","nyaek","nyaet","nyaep","nyaeh","neo","neog","neogg","neogs","neon","neonj","neonh","neod","neol","neolg","neolm","neolb","neols","neolt","neolp","neolh","neom","neob","neobs","neos","neoss","neong","neoj","neoc","neok","neot","neop","neoh","ne","neg","negg","negs","nen","nenj","nenh","ned","nel","nelg","nelm","nelb","nels","nelt","nelp","nelh","nem","neb","nebs","nes","ness","neng","nej","nec","nek","net","nep","neh","nyeo","nyeog","nyeogg","nyeogs","nyeon","nyeonj","nyeonh","nyeod","nyeol","nyeolg","nyeolm","nyeolb","nyeols","nyeolt","nyeolp","nyeolh","nyeom","nyeob","nyeobs","nyeos","nyeoss","nyeong","nyeoj","nyeoc","nyeok","nyeot","nyeop","nyeoh","nye","nyeg","nyegg","nyegs","nyen","nyenj","nyenh","nyed","nyel","nyelg","nyelm","nyelb","nyels","nyelt","nyelp","nyelh","nyem","nyeb","nyebs","nyes","nyess","nyeng","nyej","nyec","nyek","nyet","nyep","nyeh","no","nog","nogg","nogs","non","nonj","nonh","nod","nol","nolg","nolm","nolb","nols","nolt","nolp","nolh","nom","nob","nobs","nos","noss","nong","noj","noc","nok","not","nop","noh","nwa","nwag","nwagg","nwags","nwan","nwanj","nwanh","nwad","nwal","nwalg","nwalm","nwalb","nwals","nwalt","nwalp","nwalh","nwam","nwab","nwabs","nwas","nwass","nwang","nwaj","nwac","nwak","nwat","nwap","nwah","nwae","nwaeg","nwaegg","nwaegs","nwaen","nwaenj","nwaenh","nwaed","nwael","nwaelg","nwaelm","nwaelb","nwaels","nwaelt","nwaelp","nwaelh","nwaem","nwaeb","nwaebs","nwaes","nwaess","nwaeng","nwaej","nwaec","nwaek","nwaet","nwaep","nwaeh","noe","noeg","noegg","noegs","noen","noenj","noenh","noed","noel","noelg","noelm","noelb","noels","noelt","noelp","noelh","noem","noeb","noebs","noes","noess","noeng","noej","noec","noek","noet","noep","noeh","nyo","nyog","nyogg","nyogs","nyon","nyonj","nyonh","nyod","nyol","nyolg","nyolm","nyolb","nyols","nyolt","nyolp","nyolh","nyom","nyob","nyobs","nyos","nyoss","nyong","nyoj","nyoc"]});var VH=v((SSe,QH)=>{QH.exports=["nyok","nyot","nyop","nyoh","nu","nug","nugg","nugs","nun","nunj","nunh","nud","nul","nulg","nulm","nulb","nuls","nult","nulp","nulh","num","nub","nubs","nus","nuss","nung","nuj","nuc","nuk","nut","nup","nuh","nweo","nweog","nweogg","nweogs","nweon","nweonj","nweonh","nweod","nweol","nweolg","nweolm","nweolb","nweols","nweolt","nweolp","nweolh","nweom","nweob","nweobs","nweos","nweoss","nweong","nweoj","nweoc","nweok","nweot","nweop","nweoh","nwe","nweg","nwegg","nwegs","nwen","nwenj","nwenh","nwed","nwel","nwelg","nwelm","nwelb","nwels","nwelt","nwelp","nwelh","nwem","nweb","nwebs","nwes","nwess","nweng","nwej","nwec","nwek","nwet","nwep","nweh","nwi","nwig","nwigg","nwigs","nwin","nwinj","nwinh","nwid","nwil","nwilg","nwilm","nwilb","nwils","nwilt","nwilp","nwilh","nwim","nwib","nwibs","nwis","nwiss","nwing","nwij","nwic","nwik","nwit","nwip","nwih","nyu","nyug","nyugg","nyugs","nyun","nyunj","nyunh","nyud","nyul","nyulg","nyulm","nyulb","nyuls","nyult","nyulp","nyulh","nyum","nyub","nyubs","nyus","nyuss","nyung","nyuj","nyuc","nyuk","nyut","nyup","nyuh","neu","neug","neugg","neugs","neun","neunj","neunh","neud","neul","neulg","neulm","neulb","neuls","neult","neulp","neulh","neum","neub","neubs","neus","neuss","neung","neuj","neuc","neuk","neut","neup","neuh","nyi","nyig","nyigg","nyigs","nyin","nyinj","nyinh","nyid","nyil","nyilg","nyilm","nyilb","nyils","nyilt","nyilp","nyilh","nyim","nyib","nyibs","nyis","nyiss","nying","nyij","nyic","nyik","nyit","nyip","nyih","ni","nig","nigg","nigs","nin","ninj","ninh","nid","nil","nilg","nilm","nilb","nils","nilt","nilp","nilh","nim","nib","nibs","nis","niss","ning","nij","nic","nik","nit","nip","nih","da","dag","dagg","dags","dan","danj","danh","dad","dal","dalg","dalm","dalb","dals","dalt","dalp","dalh","dam","dab","dabs","das","dass","dang","daj","dac","dak","dat","dap","dah"]});var tB=v((DSe,eB)=>{eB.exports=["dae","daeg","daegg","daegs","daen","daenj","daenh","daed","dael","daelg","daelm","daelb","daels","daelt","daelp","daelh","daem","daeb","daebs","daes","daess","daeng","daej","daec","daek","daet","daep","daeh","dya","dyag","dyagg","dyags","dyan","dyanj","dyanh","dyad","dyal","dyalg","dyalm","dyalb","dyals","dyalt","dyalp","dyalh","dyam","dyab","dyabs","dyas","dyass","dyang","dyaj","dyac","dyak","dyat","dyap","dyah","dyae","dyaeg","dyaegg","dyaegs","dyaen","dyaenj","dyaenh","dyaed","dyael","dyaelg","dyaelm","dyaelb","dyaels","dyaelt","dyaelp","dyaelh","dyaem","dyaeb","dyaebs","dyaes","dyaess","dyaeng","dyaej","dyaec","dyaek","dyaet","dyaep","dyaeh","deo","deog","deogg","deogs","deon","deonj","deonh","deod","deol","deolg","deolm","deolb","deols","deolt","deolp","deolh","deom","deob","deobs","deos","deoss","deong","deoj","deoc","deok","deot","deop","deoh","de","deg","degg","degs","den","denj","denh","ded","del","delg","delm","delb","dels","delt","delp","delh","dem","deb","debs","des","dess","deng","dej","dec","dek","det","dep","deh","dyeo","dyeog","dyeogg","dyeogs","dyeon","dyeonj","dyeonh","dyeod","dyeol","dyeolg","dyeolm","dyeolb","dyeols","dyeolt","dyeolp","dyeolh","dyeom","dyeob","dyeobs","dyeos","dyeoss","dyeong","dyeoj","dyeoc","dyeok","dyeot","dyeop","dyeoh","dye","dyeg","dyegg","dyegs","dyen","dyenj","dyenh","dyed","dyel","dyelg","dyelm","dyelb","dyels","dyelt","dyelp","dyelh","dyem","dyeb","dyebs","dyes","dyess","dyeng","dyej","dyec","dyek","dyet","dyep","dyeh","do","dog","dogg","dogs","don","donj","donh","dod","dol","dolg","dolm","dolb","dols","dolt","dolp","dolh","dom","dob","dobs","dos","doss","dong","doj","doc","dok","dot","dop","doh","dwa","dwag","dwagg","dwags","dwan","dwanj","dwanh","dwad","dwal","dwalg","dwalm","dwalb","dwals","dwalt","dwalp","dwalh","dwam","dwab","dwabs","dwas","dwass","dwang","dwaj","dwac","dwak","dwat","dwap","dwah","dwae","dwaeg","dwaegg","dwaegs"]});var nB=v((TSe,iB)=>{iB.exports=["dwaen","dwaenj","dwaenh","dwaed","dwael","dwaelg","dwaelm","dwaelb","dwaels","dwaelt","dwaelp","dwaelh","dwaem","dwaeb","dwaebs","dwaes","dwaess","dwaeng","dwaej","dwaec","dwaek","dwaet","dwaep","dwaeh","doe","doeg","doegg","doegs","doen","doenj","doenh","doed","doel","doelg","doelm","doelb","doels","doelt","doelp","doelh","doem","doeb","doebs","does","doess","doeng","doej","doec","doek","doet","doep","doeh","dyo","dyog","dyogg","dyogs","dyon","dyonj","dyonh","dyod","dyol","dyolg","dyolm","dyolb","dyols","dyolt","dyolp","dyolh","dyom","dyob","dyobs","dyos","dyoss","dyong","dyoj","dyoc","dyok","dyot","dyop","dyoh","du","dug","dugg","dugs","dun","dunj","dunh","dud","dul","dulg","dulm","dulb","duls","dult","dulp","dulh","dum","dub","dubs","dus","duss","dung","duj","duc","duk","dut","dup","duh","dweo","dweog","dweogg","dweogs","dweon","dweonj","dweonh","dweod","dweol","dweolg","dweolm","dweolb","dweols","dweolt","dweolp","dweolh","dweom","dweob","dweobs","dweos","dweoss","dweong","dweoj","dweoc","dweok","dweot","dweop","dweoh","dwe","dweg","dwegg","dwegs","dwen","dwenj","dwenh","dwed","dwel","dwelg","dwelm","dwelb","dwels","dwelt","dwelp","dwelh","dwem","dweb","dwebs","dwes","dwess","dweng","dwej","dwec","dwek","dwet","dwep","dweh","dwi","dwig","dwigg","dwigs","dwin","dwinj","dwinh","dwid","dwil","dwilg","dwilm","dwilb","dwils","dwilt","dwilp","dwilh","dwim","dwib","dwibs","dwis","dwiss","dwing","dwij","dwic","dwik","dwit","dwip","dwih","dyu","dyug","dyugg","dyugs","dyun","dyunj","dyunh","dyud","dyul","dyulg","dyulm","dyulb","dyuls","dyult","dyulp","dyulh","dyum","dyub","dyubs","dyus","dyuss","dyung","dyuj","dyuc","dyuk","dyut","dyup","dyuh","deu","deug","deugg","deugs","deun","deunj","deunh","deud","deul","deulg","deulm","deulb","deuls","deult","deulp","deulh","deum","deub","deubs","deus","deuss","deung","deuj","deuc","deuk","deut","deup","deuh","dyi","dyig","dyigg","dyigs","dyin","dyinj","dyinh","dyid"]});var oB=v((kSe,rB)=>{rB.exports=["dyil","dyilg","dyilm","dyilb","dyils","dyilt","dyilp","dyilh","dyim","dyib","dyibs","dyis","dyiss","dying","dyij","dyic","dyik","dyit","dyip","dyih","di","dig","digg","digs","din","dinj","dinh","did","dil","dilg","dilm","dilb","dils","dilt","dilp","dilh","dim","dib","dibs","dis","diss","ding","dij","dic","dik","dit","dip","dih","dda","ddag","ddagg","ddags","ddan","ddanj","ddanh","ddad","ddal","ddalg","ddalm","ddalb","ddals","ddalt","ddalp","ddalh","ddam","ddab","ddabs","ddas","ddass","ddang","ddaj","ddac","ddak","ddat","ddap","ddah","ddae","ddaeg","ddaegg","ddaegs","ddaen","ddaenj","ddaenh","ddaed","ddael","ddaelg","ddaelm","ddaelb","ddaels","ddaelt","ddaelp","ddaelh","ddaem","ddaeb","ddaebs","ddaes","ddaess","ddaeng","ddaej","ddaec","ddaek","ddaet","ddaep","ddaeh","ddya","ddyag","ddyagg","ddyags","ddyan","ddyanj","ddyanh","ddyad","ddyal","ddyalg","ddyalm","ddyalb","ddyals","ddyalt","ddyalp","ddyalh","ddyam","ddyab","ddyabs","ddyas","ddyass","ddyang","ddyaj","ddyac","ddyak","ddyat","ddyap","ddyah","ddyae","ddyaeg","ddyaegg","ddyaegs","ddyaen","ddyaenj","ddyaenh","ddyaed","ddyael","ddyaelg","ddyaelm","ddyaelb","ddyaels","ddyaelt","ddyaelp","ddyaelh","ddyaem","ddyaeb","ddyaebs","ddyaes","ddyaess","ddyaeng","ddyaej","ddyaec","ddyaek","ddyaet","ddyaep","ddyaeh","ddeo","ddeog","ddeogg","ddeogs","ddeon","ddeonj","ddeonh","ddeod","ddeol","ddeolg","ddeolm","ddeolb","ddeols","ddeolt","ddeolp","ddeolh","ddeom","ddeob","ddeobs","ddeos","ddeoss","ddeong","ddeoj","ddeoc","ddeok","ddeot","ddeop","ddeoh","dde","ddeg","ddegg","ddegs","dden","ddenj","ddenh","dded","ddel","ddelg","ddelm","ddelb","ddels","ddelt","ddelp","ddelh","ddem","ddeb","ddebs","ddes","ddess","ddeng","ddej","ddec","ddek","ddet","ddep","ddeh","ddyeo","ddyeog","ddyeogg","ddyeogs","ddyeon","ddyeonj","ddyeonh","ddyeod","ddyeol","ddyeolg","ddyeolm","ddyeolb","ddyeols","ddyeolt","ddyeolp","ddyeolh","ddyeom","ddyeob","ddyeobs","ddyeos","ddyeoss","ddyeong","ddyeoj","ddyeoc","ddyeok","ddyeot","ddyeop","ddyeoh","ddye","ddyeg","ddyegg","ddyegs","ddyen","ddyenj","ddyenh","ddyed","ddyel","ddyelg","ddyelm","ddyelb"]});var aB=v((PSe,sB)=>{sB.exports=["ddyels","ddyelt","ddyelp","ddyelh","ddyem","ddyeb","ddyebs","ddyes","ddyess","ddyeng","ddyej","ddyec","ddyek","ddyet","ddyep","ddyeh","ddo","ddog","ddogg","ddogs","ddon","ddonj","ddonh","ddod","ddol","ddolg","ddolm","ddolb","ddols","ddolt","ddolp","ddolh","ddom","ddob","ddobs","ddos","ddoss","ddong","ddoj","ddoc","ddok","ddot","ddop","ddoh","ddwa","ddwag","ddwagg","ddwags","ddwan","ddwanj","ddwanh","ddwad","ddwal","ddwalg","ddwalm","ddwalb","ddwals","ddwalt","ddwalp","ddwalh","ddwam","ddwab","ddwabs","ddwas","ddwass","ddwang","ddwaj","ddwac","ddwak","ddwat","ddwap","ddwah","ddwae","ddwaeg","ddwaegg","ddwaegs","ddwaen","ddwaenj","ddwaenh","ddwaed","ddwael","ddwaelg","ddwaelm","ddwaelb","ddwaels","ddwaelt","ddwaelp","ddwaelh","ddwaem","ddwaeb","ddwaebs","ddwaes","ddwaess","ddwaeng","ddwaej","ddwaec","ddwaek","ddwaet","ddwaep","ddwaeh","ddoe","ddoeg","ddoegg","ddoegs","ddoen","ddoenj","ddoenh","ddoed","ddoel","ddoelg","ddoelm","ddoelb","ddoels","ddoelt","ddoelp","ddoelh","ddoem","ddoeb","ddoebs","ddoes","ddoess","ddoeng","ddoej","ddoec","ddoek","ddoet","ddoep","ddoeh","ddyo","ddyog","ddyogg","ddyogs","ddyon","ddyonj","ddyonh","ddyod","ddyol","ddyolg","ddyolm","ddyolb","ddyols","ddyolt","ddyolp","ddyolh","ddyom","ddyob","ddyobs","ddyos","ddyoss","ddyong","ddyoj","ddyoc","ddyok","ddyot","ddyop","ddyoh","ddu","ddug","ddugg","ddugs","ddun","ddunj","ddunh","ddud","ddul","ddulg","ddulm","ddulb","dduls","ddult","ddulp","ddulh","ddum","ddub","ddubs","ddus","dduss","ddung","dduj","dduc","dduk","ddut","ddup","dduh","ddweo","ddweog","ddweogg","ddweogs","ddweon","ddweonj","ddweonh","ddweod","ddweol","ddweolg","ddweolm","ddweolb","ddweols","ddweolt","ddweolp","ddweolh","ddweom","ddweob","ddweobs","ddweos","ddweoss","ddweong","ddweoj","ddweoc","ddweok","ddweot","ddweop","ddweoh","ddwe","ddweg","ddwegg","ddwegs","ddwen","ddwenj","ddwenh","ddwed","ddwel","ddwelg","ddwelm","ddwelb","ddwels","ddwelt","ddwelp","ddwelh","ddwem","ddweb","ddwebs","ddwes","ddwess","ddweng","ddwej","ddwec","ddwek","ddwet","ddwep","ddweh","ddwi","ddwig","ddwigg","ddwigs","ddwin","ddwinj","ddwinh","ddwid","ddwil","ddwilg","ddwilm","ddwilb","ddwils","ddwilt","ddwilp","ddwilh"]});var uB=v((RSe,lB)=>{lB.exports=["ddwim","ddwib","ddwibs","ddwis","ddwiss","ddwing","ddwij","ddwic","ddwik","ddwit","ddwip","ddwih","ddyu","ddyug","ddyugg","ddyugs","ddyun","ddyunj","ddyunh","ddyud","ddyul","ddyulg","ddyulm","ddyulb","ddyuls","ddyult","ddyulp","ddyulh","ddyum","ddyub","ddyubs","ddyus","ddyuss","ddyung","ddyuj","ddyuc","ddyuk","ddyut","ddyup","ddyuh","ddeu","ddeug","ddeugg","ddeugs","ddeun","ddeunj","ddeunh","ddeud","ddeul","ddeulg","ddeulm","ddeulb","ddeuls","ddeult","ddeulp","ddeulh","ddeum","ddeub","ddeubs","ddeus","ddeuss","ddeung","ddeuj","ddeuc","ddeuk","ddeut","ddeup","ddeuh","ddyi","ddyig","ddyigg","ddyigs","ddyin","ddyinj","ddyinh","ddyid","ddyil","ddyilg","ddyilm","ddyilb","ddyils","ddyilt","ddyilp","ddyilh","ddyim","ddyib","ddyibs","ddyis","ddyiss","ddying","ddyij","ddyic","ddyik","ddyit","ddyip","ddyih","ddi","ddig","ddigg","ddigs","ddin","ddinj","ddinh","ddid","ddil","ddilg","ddilm","ddilb","ddils","ddilt","ddilp","ddilh","ddim","ddib","ddibs","ddis","ddiss","dding","ddij","ddic","ddik","ddit","ddip","ddih","ra","rag","ragg","rags","ran","ranj","ranh","rad","ral","ralg","ralm","ralb","rals","ralt","ralp","ralh","ram","rab","rabs","ras","rass","rang","raj","rac","rak","rat","rap","rah","rae","raeg","raegg","raegs","raen","raenj","raenh","raed","rael","raelg","raelm","raelb","raels","raelt","raelp","raelh","raem","raeb","raebs","raes","raess","raeng","raej","raec","raek","raet","raep","raeh","rya","ryag","ryagg","ryags","ryan","ryanj","ryanh","ryad","ryal","ryalg","ryalm","ryalb","ryals","ryalt","ryalp","ryalh","ryam","ryab","ryabs","ryas","ryass","ryang","ryaj","ryac","ryak","ryat","ryap","ryah","ryae","ryaeg","ryaegg","ryaegs","ryaen","ryaenj","ryaenh","ryaed","ryael","ryaelg","ryaelm","ryaelb","ryaels","ryaelt","ryaelp","ryaelh","ryaem","ryaeb","ryaebs","ryaes","ryaess","ryaeng","ryaej","ryaec","ryaek","ryaet","ryaep","ryaeh","reo","reog","reogg","reogs","reon","reonj","reonh","reod","reol","reolg","reolm","reolb","reols","reolt","reolp","reolh","reom","reob","reobs","reos"]});var dB=v((_Se,cB)=>{cB.exports=["reoss","reong","reoj","reoc","reok","reot","reop","reoh","re","reg","regg","regs","ren","renj","renh","red","rel","relg","relm","relb","rels","relt","relp","relh","rem","reb","rebs","res","ress","reng","rej","rec","rek","ret","rep","reh","ryeo","ryeog","ryeogg","ryeogs","ryeon","ryeonj","ryeonh","ryeod","ryeol","ryeolg","ryeolm","ryeolb","ryeols","ryeolt","ryeolp","ryeolh","ryeom","ryeob","ryeobs","ryeos","ryeoss","ryeong","ryeoj","ryeoc","ryeok","ryeot","ryeop","ryeoh","rye","ryeg","ryegg","ryegs","ryen","ryenj","ryenh","ryed","ryel","ryelg","ryelm","ryelb","ryels","ryelt","ryelp","ryelh","ryem","ryeb","ryebs","ryes","ryess","ryeng","ryej","ryec","ryek","ryet","ryep","ryeh","ro","rog","rogg","rogs","ron","ronj","ronh","rod","rol","rolg","rolm","rolb","rols","rolt","rolp","rolh","rom","rob","robs","ros","ross","rong","roj","roc","rok","rot","rop","roh","rwa","rwag","rwagg","rwags","rwan","rwanj","rwanh","rwad","rwal","rwalg","rwalm","rwalb","rwals","rwalt","rwalp","rwalh","rwam","rwab","rwabs","rwas","rwass","rwang","rwaj","rwac","rwak","rwat","rwap","rwah","rwae","rwaeg","rwaegg","rwaegs","rwaen","rwaenj","rwaenh","rwaed","rwael","rwaelg","rwaelm","rwaelb","rwaels","rwaelt","rwaelp","rwaelh","rwaem","rwaeb","rwaebs","rwaes","rwaess","rwaeng","rwaej","rwaec","rwaek","rwaet","rwaep","rwaeh","roe","roeg","roegg","roegs","roen","roenj","roenh","roed","roel","roelg","roelm","roelb","roels","roelt","roelp","roelh","roem","roeb","roebs","roes","roess","roeng","roej","roec","roek","roet","roep","roeh","ryo","ryog","ryogg","ryogs","ryon","ryonj","ryonh","ryod","ryol","ryolg","ryolm","ryolb","ryols","ryolt","ryolp","ryolh","ryom","ryob","ryobs","ryos","ryoss","ryong","ryoj","ryoc","ryok","ryot","ryop","ryoh","ru","rug","rugg","rugs","run","runj","runh","rud","rul","rulg","rulm","rulb","ruls","rult","rulp","rulh","rum","rub","rubs","rus","russ","rung","ruj","ruc"]});var gB=v((ESe,hB)=>{hB.exports=["ruk","rut","rup","ruh","rweo","rweog","rweogg","rweogs","rweon","rweonj","rweonh","rweod","rweol","rweolg","rweolm","rweolb","rweols","rweolt","rweolp","rweolh","rweom","rweob","rweobs","rweos","rweoss","rweong","rweoj","rweoc","rweok","rweot","rweop","rweoh","rwe","rweg","rwegg","rwegs","rwen","rwenj","rwenh","rwed","rwel","rwelg","rwelm","rwelb","rwels","rwelt","rwelp","rwelh","rwem","rweb","rwebs","rwes","rwess","rweng","rwej","rwec","rwek","rwet","rwep","rweh","rwi","rwig","rwigg","rwigs","rwin","rwinj","rwinh","rwid","rwil","rwilg","rwilm","rwilb","rwils","rwilt","rwilp","rwilh","rwim","rwib","rwibs","rwis","rwiss","rwing","rwij","rwic","rwik","rwit","rwip","rwih","ryu","ryug","ryugg","ryugs","ryun","ryunj","ryunh","ryud","ryul","ryulg","ryulm","ryulb","ryuls","ryult","ryulp","ryulh","ryum","ryub","ryubs","ryus","ryuss","ryung","ryuj","ryuc","ryuk","ryut","ryup","ryuh","reu","reug","reugg","reugs","reun","reunj","reunh","reud","reul","reulg","reulm","reulb","reuls","reult","reulp","reulh","reum","reub","reubs","reus","reuss","reung","reuj","reuc","reuk","reut","reup","reuh","ryi","ryig","ryigg","ryigs","ryin","ryinj","ryinh","ryid","ryil","ryilg","ryilm","ryilb","ryils","ryilt","ryilp","ryilh","ryim","ryib","ryibs","ryis","ryiss","rying","ryij","ryic","ryik","ryit","ryip","ryih","ri","rig","rigg","rigs","rin","rinj","rinh","rid","ril","rilg","rilm","rilb","rils","rilt","rilp","rilh","rim","rib","ribs","ris","riss","ring","rij","ric","rik","rit","rip","rih","ma","mag","magg","mags","man","manj","manh","mad","mal","malg","malm","malb","mals","malt","malp","malh","mam","mab","mabs","mas","mass","mang","maj","mac","mak","mat","map","mah","mae","maeg","maegg","maegs","maen","maenj","maenh","maed","mael","maelg","maelm","maelb","maels","maelt","maelp","maelh","maem","maeb","maebs","maes","maess","maeng","maej","maec","maek","maet","maep","maeh"]});var fB=v((ISe,pB)=>{pB.exports=["mya","myag","myagg","myags","myan","myanj","myanh","myad","myal","myalg","myalm","myalb","myals","myalt","myalp","myalh","myam","myab","myabs","myas","myass","myang","myaj","myac","myak","myat","myap","myah","myae","myaeg","myaegg","myaegs","myaen","myaenj","myaenh","myaed","myael","myaelg","myaelm","myaelb","myaels","myaelt","myaelp","myaelh","myaem","myaeb","myaebs","myaes","myaess","myaeng","myaej","myaec","myaek","myaet","myaep","myaeh","meo","meog","meogg","meogs","meon","meonj","meonh","meod","meol","meolg","meolm","meolb","meols","meolt","meolp","meolh","meom","meob","meobs","meos","meoss","meong","meoj","meoc","meok","meot","meop","meoh","me","meg","megg","megs","men","menj","menh","med","mel","melg","melm","melb","mels","melt","melp","melh","mem","meb","mebs","mes","mess","meng","mej","mec","mek","met","mep","meh","myeo","myeog","myeogg","myeogs","myeon","myeonj","myeonh","myeod","myeol","myeolg","myeolm","myeolb","myeols","myeolt","myeolp","myeolh","myeom","myeob","myeobs","myeos","myeoss","myeong","myeoj","myeoc","myeok","myeot","myeop","myeoh","mye","myeg","myegg","myegs","myen","myenj","myenh","myed","myel","myelg","myelm","myelb","myels","myelt","myelp","myelh","myem","myeb","myebs","myes","myess","myeng","myej","myec","myek","myet","myep","myeh","mo","mog","mogg","mogs","mon","monj","monh","mod","mol","molg","molm","molb","mols","molt","molp","molh","mom","mob","mobs","mos","moss","mong","moj","moc","mok","mot","mop","moh","mwa","mwag","mwagg","mwags","mwan","mwanj","mwanh","mwad","mwal","mwalg","mwalm","mwalb","mwals","mwalt","mwalp","mwalh","mwam","mwab","mwabs","mwas","mwass","mwang","mwaj","mwac","mwak","mwat","mwap","mwah","mwae","mwaeg","mwaegg","mwaegs","mwaen","mwaenj","mwaenh","mwaed","mwael","mwaelg","mwaelm","mwaelb","mwaels","mwaelt","mwaelp","mwaelh","mwaem","mwaeb","mwaebs","mwaes","mwaess","mwaeng","mwaej","mwaec","mwaek","mwaet","mwaep","mwaeh","moe","moeg","moegg","moegs"]});var bB=v((LSe,mB)=>{mB.exports=["moen","moenj","moenh","moed","moel","moelg","moelm","moelb","moels","moelt","moelp","moelh","moem","moeb","moebs","moes","moess","moeng","moej","moec","moek","moet","moep","moeh","myo","myog","myogg","myogs","myon","myonj","myonh","myod","myol","myolg","myolm","myolb","myols","myolt","myolp","myolh","myom","myob","myobs","myos","myoss","myong","myoj","myoc","myok","myot","myop","myoh","mu","mug","mugg","mugs","mun","munj","munh","mud","mul","mulg","mulm","mulb","muls","mult","mulp","mulh","mum","mub","mubs","mus","muss","mung","muj","muc","muk","mut","mup","muh","mweo","mweog","mweogg","mweogs","mweon","mweonj","mweonh","mweod","mweol","mweolg","mweolm","mweolb","mweols","mweolt","mweolp","mweolh","mweom","mweob","mweobs","mweos","mweoss","mweong","mweoj","mweoc","mweok","mweot","mweop","mweoh","mwe","mweg","mwegg","mwegs","mwen","mwenj","mwenh","mwed","mwel","mwelg","mwelm","mwelb","mwels","mwelt","mwelp","mwelh","mwem","mweb","mwebs","mwes","mwess","mweng","mwej","mwec","mwek","mwet","mwep","mweh","mwi","mwig","mwigg","mwigs","mwin","mwinj","mwinh","mwid","mwil","mwilg","mwilm","mwilb","mwils","mwilt","mwilp","mwilh","mwim","mwib","mwibs","mwis","mwiss","mwing","mwij","mwic","mwik","mwit","mwip","mwih","myu","myug","myugg","myugs","myun","myunj","myunh","myud","myul","myulg","myulm","myulb","myuls","myult","myulp","myulh","myum","myub","myubs","myus","myuss","myung","myuj","myuc","myuk","myut","myup","myuh","meu","meug","meugg","meugs","meun","meunj","meunh","meud","meul","meulg","meulm","meulb","meuls","meult","meulp","meulh","meum","meub","meubs","meus","meuss","meung","meuj","meuc","meuk","meut","meup","meuh","myi","myig","myigg","myigs","myin","myinj","myinh","myid","myil","myilg","myilm","myilb","myils","myilt","myilp","myilh","myim","myib","myibs","myis","myiss","mying","myij","myic","myik","myit","myip","myih","mi","mig","migg","migs","min","minj","minh","mid"]});var vB=v((FSe,yB)=>{yB.exports=["mil","milg","milm","milb","mils","milt","milp","milh","mim","mib","mibs","mis","miss","ming","mij","mic","mik","mit","mip","mih","ba","bag","bagg","bags","ban","banj","banh","bad","bal","balg","balm","balb","bals","balt","balp","balh","bam","bab","babs","bas","bass","bang","baj","bac","bak","bat","bap","bah","bae","baeg","baegg","baegs","baen","baenj","baenh","baed","bael","baelg","baelm","baelb","baels","baelt","baelp","baelh","baem","baeb","baebs","baes","baess","baeng","baej","baec","baek","baet","baep","baeh","bya","byag","byagg","byags","byan","byanj","byanh","byad","byal","byalg","byalm","byalb","byals","byalt","byalp","byalh","byam","byab","byabs","byas","byass","byang","byaj","byac","byak","byat","byap","byah","byae","byaeg","byaegg","byaegs","byaen","byaenj","byaenh","byaed","byael","byaelg","byaelm","byaelb","byaels","byaelt","byaelp","byaelh","byaem","byaeb","byaebs","byaes","byaess","byaeng","byaej","byaec","byaek","byaet","byaep","byaeh","beo","beog","beogg","beogs","beon","beonj","beonh","beod","beol","beolg","beolm","beolb","beols","beolt","beolp","beolh","beom","beob","beobs","beos","beoss","beong","beoj","beoc","beok","beot","beop","beoh","be","beg","begg","begs","ben","benj","benh","bed","bel","belg","belm","belb","bels","belt","belp","belh","bem","beb","bebs","bes","bess","beng","bej","bec","bek","bet","bep","beh","byeo","byeog","byeogg","byeogs","byeon","byeonj","byeonh","byeod","byeol","byeolg","byeolm","byeolb","byeols","byeolt","byeolp","byeolh","byeom","byeob","byeobs","byeos","byeoss","byeong","byeoj","byeoc","byeok","byeot","byeop","byeoh","bye","byeg","byegg","byegs","byen","byenj","byenh","byed","byel","byelg","byelm","byelb","byels","byelt","byelp","byelh","byem","byeb","byebs","byes","byess","byeng","byej","byec","byek","byet","byep","byeh","bo","bog","bogg","bogs","bon","bonj","bonh","bod","bol","bolg","bolm","bolb"]});var xB=v((MSe,wB)=>{wB.exports=["bols","bolt","bolp","bolh","bom","bob","bobs","bos","boss","bong","boj","boc","bok","bot","bop","boh","bwa","bwag","bwagg","bwags","bwan","bwanj","bwanh","bwad","bwal","bwalg","bwalm","bwalb","bwals","bwalt","bwalp","bwalh","bwam","bwab","bwabs","bwas","bwass","bwang","bwaj","bwac","bwak","bwat","bwap","bwah","bwae","bwaeg","bwaegg","bwaegs","bwaen","bwaenj","bwaenh","bwaed","bwael","bwaelg","bwaelm","bwaelb","bwaels","bwaelt","bwaelp","bwaelh","bwaem","bwaeb","bwaebs","bwaes","bwaess","bwaeng","bwaej","bwaec","bwaek","bwaet","bwaep","bwaeh","boe","boeg","boegg","boegs","boen","boenj","boenh","boed","boel","boelg","boelm","boelb","boels","boelt","boelp","boelh","boem","boeb","boebs","boes","boess","boeng","boej","boec","boek","boet","boep","boeh","byo","byog","byogg","byogs","byon","byonj","byonh","byod","byol","byolg","byolm","byolb","byols","byolt","byolp","byolh","byom","byob","byobs","byos","byoss","byong","byoj","byoc","byok","byot","byop","byoh","bu","bug","bugg","bugs","bun","bunj","bunh","bud","bul","bulg","bulm","bulb","buls","bult","bulp","bulh","bum","bub","bubs","bus","buss","bung","buj","buc","buk","but","bup","buh","bweo","bweog","bweogg","bweogs","bweon","bweonj","bweonh","bweod","bweol","bweolg","bweolm","bweolb","bweols","bweolt","bweolp","bweolh","bweom","bweob","bweobs","bweos","bweoss","bweong","bweoj","bweoc","bweok","bweot","bweop","bweoh","bwe","bweg","bwegg","bwegs","bwen","bwenj","bwenh","bwed","bwel","bwelg","bwelm","bwelb","bwels","bwelt","bwelp","bwelh","bwem","bweb","bwebs","bwes","bwess","bweng","bwej","bwec","bwek","bwet","bwep","bweh","bwi","bwig","bwigg","bwigs","bwin","bwinj","bwinh","bwid","bwil","bwilg","bwilm","bwilb","bwils","bwilt","bwilp","bwilh","bwim","bwib","bwibs","bwis","bwiss","bwing","bwij","bwic","bwik","bwit","bwip","bwih","byu","byug","byugg","byugs","byun","byunj","byunh","byud","byul","byulg","byulm","byulb","byuls","byult","byulp","byulh"]});var SB=v((jSe,CB)=>{CB.exports=["byum","byub","byubs","byus","byuss","byung","byuj","byuc","byuk","byut","byup","byuh","beu","beug","beugg","beugs","beun","beunj","beunh","beud","beul","beulg","beulm","beulb","beuls","beult","beulp","beulh","beum","beub","beubs","beus","beuss","beung","beuj","beuc","beuk","beut","beup","beuh","byi","byig","byigg","byigs","byin","byinj","byinh","byid","byil","byilg","byilm","byilb","byils","byilt","byilp","byilh","byim","byib","byibs","byis","byiss","bying","byij","byic","byik","byit","byip","byih","bi","big","bigg","bigs","bin","binj","binh","bid","bil","bilg","bilm","bilb","bils","bilt","bilp","bilh","bim","bib","bibs","bis","biss","bing","bij","bic","bik","bit","bip","bih","bba","bbag","bbagg","bbags","bban","bbanj","bbanh","bbad","bbal","bbalg","bbalm","bbalb","bbals","bbalt","bbalp","bbalh","bbam","bbab","bbabs","bbas","bbass","bbang","bbaj","bbac","bbak","bbat","bbap","bbah","bbae","bbaeg","bbaegg","bbaegs","bbaen","bbaenj","bbaenh","bbaed","bbael","bbaelg","bbaelm","bbaelb","bbaels","bbaelt","bbaelp","bbaelh","bbaem","bbaeb","bbaebs","bbaes","bbaess","bbaeng","bbaej","bbaec","bbaek","bbaet","bbaep","bbaeh","bbya","bbyag","bbyagg","bbyags","bbyan","bbyanj","bbyanh","bbyad","bbyal","bbyalg","bbyalm","bbyalb","bbyals","bbyalt","bbyalp","bbyalh","bbyam","bbyab","bbyabs","bbyas","bbyass","bbyang","bbyaj","bbyac","bbyak","bbyat","bbyap","bbyah","bbyae","bbyaeg","bbyaegg","bbyaegs","bbyaen","bbyaenj","bbyaenh","bbyaed","bbyael","bbyaelg","bbyaelm","bbyaelb","bbyaels","bbyaelt","bbyaelp","bbyaelh","bbyaem","bbyaeb","bbyaebs","bbyaes","bbyaess","bbyaeng","bbyaej","bbyaec","bbyaek","bbyaet","bbyaep","bbyaeh","bbeo","bbeog","bbeogg","bbeogs","bbeon","bbeonj","bbeonh","bbeod","bbeol","bbeolg","bbeolm","bbeolb","bbeols","bbeolt","bbeolp","bbeolh","bbeom","bbeob","bbeobs","bbeos","bbeoss","bbeong","bbeoj","bbeoc","bbeok","bbeot","bbeop","bbeoh","bbe","bbeg","bbegg","bbegs","bben","bbenj","bbenh","bbed","bbel","bbelg","bbelm","bbelb","bbels","bbelt","bbelp","bbelh","bbem","bbeb","bbebs","bbes"]});var TB=v((OSe,DB)=>{DB.exports=["bbess","bbeng","bbej","bbec","bbek","bbet","bbep","bbeh","bbyeo","bbyeog","bbyeogg","bbyeogs","bbyeon","bbyeonj","bbyeonh","bbyeod","bbyeol","bbyeolg","bbyeolm","bbyeolb","bbyeols","bbyeolt","bbyeolp","bbyeolh","bbyeom","bbyeob","bbyeobs","bbyeos","bbyeoss","bbyeong","bbyeoj","bbyeoc","bbyeok","bbyeot","bbyeop","bbyeoh","bbye","bbyeg","bbyegg","bbyegs","bbyen","bbyenj","bbyenh","bbyed","bbyel","bbyelg","bbyelm","bbyelb","bbyels","bbyelt","bbyelp","bbyelh","bbyem","bbyeb","bbyebs","bbyes","bbyess","bbyeng","bbyej","bbyec","bbyek","bbyet","bbyep","bbyeh","bbo","bbog","bbogg","bbogs","bbon","bbonj","bbonh","bbod","bbol","bbolg","bbolm","bbolb","bbols","bbolt","bbolp","bbolh","bbom","bbob","bbobs","bbos","bboss","bbong","bboj","bboc","bbok","bbot","bbop","bboh","bbwa","bbwag","bbwagg","bbwags","bbwan","bbwanj","bbwanh","bbwad","bbwal","bbwalg","bbwalm","bbwalb","bbwals","bbwalt","bbwalp","bbwalh","bbwam","bbwab","bbwabs","bbwas","bbwass","bbwang","bbwaj","bbwac","bbwak","bbwat","bbwap","bbwah","bbwae","bbwaeg","bbwaegg","bbwaegs","bbwaen","bbwaenj","bbwaenh","bbwaed","bbwael","bbwaelg","bbwaelm","bbwaelb","bbwaels","bbwaelt","bbwaelp","bbwaelh","bbwaem","bbwaeb","bbwaebs","bbwaes","bbwaess","bbwaeng","bbwaej","bbwaec","bbwaek","bbwaet","bbwaep","bbwaeh","bboe","bboeg","bboegg","bboegs","bboen","bboenj","bboenh","bboed","bboel","bboelg","bboelm","bboelb","bboels","bboelt","bboelp","bboelh","bboem","bboeb","bboebs","bboes","bboess","bboeng","bboej","bboec","bboek","bboet","bboep","bboeh","bbyo","bbyog","bbyogg","bbyogs","bbyon","bbyonj","bbyonh","bbyod","bbyol","bbyolg","bbyolm","bbyolb","bbyols","bbyolt","bbyolp","bbyolh","bbyom","bbyob","bbyobs","bbyos","bbyoss","bbyong","bbyoj","bbyoc","bbyok","bbyot","bbyop","bbyoh","bbu","bbug","bbugg","bbugs","bbun","bbunj","bbunh","bbud","bbul","bbulg","bbulm","bbulb","bbuls","bbult","bbulp","bbulh","bbum","bbub","bbubs","bbus","bbuss","bbung","bbuj","bbuc","bbuk","bbut","bbup","bbuh","bbweo","bbweog","bbweogg","bbweogs","bbweon","bbweonj","bbweonh","bbweod","bbweol","bbweolg","bbweolm","bbweolb","bbweols","bbweolt","bbweolp","bbweolh","bbweom","bbweob","bbweobs","bbweos","bbweoss","bbweong","bbweoj","bbweoc"]});var PB=v((ASe,kB)=>{kB.exports=["bbweok","bbweot","bbweop","bbweoh","bbwe","bbweg","bbwegg","bbwegs","bbwen","bbwenj","bbwenh","bbwed","bbwel","bbwelg","bbwelm","bbwelb","bbwels","bbwelt","bbwelp","bbwelh","bbwem","bbweb","bbwebs","bbwes","bbwess","bbweng","bbwej","bbwec","bbwek","bbwet","bbwep","bbweh","bbwi","bbwig","bbwigg","bbwigs","bbwin","bbwinj","bbwinh","bbwid","bbwil","bbwilg","bbwilm","bbwilb","bbwils","bbwilt","bbwilp","bbwilh","bbwim","bbwib","bbwibs","bbwis","bbwiss","bbwing","bbwij","bbwic","bbwik","bbwit","bbwip","bbwih","bbyu","bbyug","bbyugg","bbyugs","bbyun","bbyunj","bbyunh","bbyud","bbyul","bbyulg","bbyulm","bbyulb","bbyuls","bbyult","bbyulp","bbyulh","bbyum","bbyub","bbyubs","bbyus","bbyuss","bbyung","bbyuj","bbyuc","bbyuk","bbyut","bbyup","bbyuh","bbeu","bbeug","bbeugg","bbeugs","bbeun","bbeunj","bbeunh","bbeud","bbeul","bbeulg","bbeulm","bbeulb","bbeuls","bbeult","bbeulp","bbeulh","bbeum","bbeub","bbeubs","bbeus","bbeuss","bbeung","bbeuj","bbeuc","bbeuk","bbeut","bbeup","bbeuh","bbyi","bbyig","bbyigg","bbyigs","bbyin","bbyinj","bbyinh","bbyid","bbyil","bbyilg","bbyilm","bbyilb","bbyils","bbyilt","bbyilp","bbyilh","bbyim","bbyib","bbyibs","bbyis","bbyiss","bbying","bbyij","bbyic","bbyik","bbyit","bbyip","bbyih","bbi","bbig","bbigg","bbigs","bbin","bbinj","bbinh","bbid","bbil","bbilg","bbilm","bbilb","bbils","bbilt","bbilp","bbilh","bbim","bbib","bbibs","bbis","bbiss","bbing","bbij","bbic","bbik","bbit","bbip","bbih","sa","sag","sagg","sags","san","sanj","sanh","sad","sal","salg","salm","salb","sals","salt","salp","salh","sam","sab","sabs","sas","sass","sang","saj","sac","sak","sat","sap","sah","sae","saeg","saegg","saegs","saen","saenj","saenh","saed","sael","saelg","saelm","saelb","saels","saelt","saelp","saelh","saem","saeb","saebs","saes","saess","saeng","saej","saec","saek","saet","saep","saeh","sya","syag","syagg","syags","syan","syanj","syanh","syad","syal","syalg","syalm","syalb","syals","syalt","syalp","syalh","syam","syab","syabs","syas","syass","syang","syaj","syac","syak","syat","syap","syah"]});var _B=v((NSe,RB)=>{RB.exports=["syae","syaeg","syaegg","syaegs","syaen","syaenj","syaenh","syaed","syael","syaelg","syaelm","syaelb","syaels","syaelt","syaelp","syaelh","syaem","syaeb","syaebs","syaes","syaess","syaeng","syaej","syaec","syaek","syaet","syaep","syaeh","seo","seog","seogg","seogs","seon","seonj","seonh","seod","seol","seolg","seolm","seolb","seols","seolt","seolp","seolh","seom","seob","seobs","seos","seoss","seong","seoj","seoc","seok","seot","seop","seoh","se","seg","segg","segs","sen","senj","senh","sed","sel","selg","selm","selb","sels","selt","selp","selh","sem","seb","sebs","ses","sess","seng","sej","sec","sek","set","sep","seh","syeo","syeog","syeogg","syeogs","syeon","syeonj","syeonh","syeod","syeol","syeolg","syeolm","syeolb","syeols","syeolt","syeolp","syeolh","syeom","syeob","syeobs","syeos","syeoss","syeong","syeoj","syeoc","syeok","syeot","syeop","syeoh","sye","syeg","syegg","syegs","syen","syenj","syenh","syed","syel","syelg","syelm","syelb","syels","syelt","syelp","syelh","syem","syeb","syebs","syes","syess","syeng","syej","syec","syek","syet","syep","syeh","so","sog","sogg","sogs","son","sonj","sonh","sod","sol","solg","solm","solb","sols","solt","solp","solh","som","sob","sobs","sos","soss","song","soj","soc","sok","sot","sop","soh","swa","swag","swagg","swags","swan","swanj","swanh","swad","swal","swalg","swalm","swalb","swals","swalt","swalp","swalh","swam","swab","swabs","swas","swass","swang","swaj","swac","swak","swat","swap","swah","swae","swaeg","swaegg","swaegs","swaen","swaenj","swaenh","swaed","swael","swaelg","swaelm","swaelb","swaels","swaelt","swaelp","swaelh","swaem","swaeb","swaebs","swaes","swaess","swaeng","swaej","swaec","swaek","swaet","swaep","swaeh","soe","soeg","soegg","soegs","soen","soenj","soenh","soed","soel","soelg","soelm","soelb","soels","soelt","soelp","soelh","soem","soeb","soebs","soes","soess","soeng","soej","soec","soek","soet","soep","soeh","syo","syog","syogg","syogs"]});var IB=v((HSe,EB)=>{EB.exports=["syon","syonj","syonh","syod","syol","syolg","syolm","syolb","syols","syolt","syolp","syolh","syom","syob","syobs","syos","syoss","syong","syoj","syoc","syok","syot","syop","syoh","su","sug","sugg","sugs","sun","sunj","sunh","sud","sul","sulg","sulm","sulb","suls","sult","sulp","sulh","sum","sub","subs","sus","suss","sung","suj","suc","suk","sut","sup","suh","sweo","sweog","sweogg","sweogs","sweon","sweonj","sweonh","sweod","sweol","sweolg","sweolm","sweolb","sweols","sweolt","sweolp","sweolh","sweom","sweob","sweobs","sweos","sweoss","sweong","sweoj","sweoc","sweok","sweot","sweop","sweoh","swe","sweg","swegg","swegs","swen","swenj","swenh","swed","swel","swelg","swelm","swelb","swels","swelt","swelp","swelh","swem","sweb","swebs","swes","swess","sweng","swej","swec","swek","swet","swep","sweh","swi","swig","swigg","swigs","swin","swinj","swinh","swid","swil","swilg","swilm","swilb","swils","swilt","swilp","swilh","swim","swib","swibs","swis","swiss","swing","swij","swic","swik","swit","swip","swih","syu","syug","syugg","syugs","syun","syunj","syunh","syud","syul","syulg","syulm","syulb","syuls","syult","syulp","syulh","syum","syub","syubs","syus","syuss","syung","syuj","syuc","syuk","syut","syup","syuh","seu","seug","seugg","seugs","seun","seunj","seunh","seud","seul","seulg","seulm","seulb","seuls","seult","seulp","seulh","seum","seub","seubs","seus","seuss","seung","seuj","seuc","seuk","seut","seup","seuh","syi","syig","syigg","syigs","syin","syinj","syinh","syid","syil","syilg","syilm","syilb","syils","syilt","syilp","syilh","syim","syib","syibs","syis","syiss","sying","syij","syic","syik","syit","syip","syih","si","sig","sigg","sigs","sin","sinj","sinh","sid","sil","silg","silm","silb","sils","silt","silp","silh","sim","sib","sibs","sis","siss","sing","sij","sic","sik","sit","sip","sih","ssa","ssag","ssagg","ssags","ssan","ssanj","ssanh","ssad"]});var FB=v((BSe,LB)=>{LB.exports=["ssal","ssalg","ssalm","ssalb","ssals","ssalt","ssalp","ssalh","ssam","ssab","ssabs","ssas","ssass","ssang","ssaj","ssac","ssak","ssat","ssap","ssah","ssae","ssaeg","ssaegg","ssaegs","ssaen","ssaenj","ssaenh","ssaed","ssael","ssaelg","ssaelm","ssaelb","ssaels","ssaelt","ssaelp","ssaelh","ssaem","ssaeb","ssaebs","ssaes","ssaess","ssaeng","ssaej","ssaec","ssaek","ssaet","ssaep","ssaeh","ssya","ssyag","ssyagg","ssyags","ssyan","ssyanj","ssyanh","ssyad","ssyal","ssyalg","ssyalm","ssyalb","ssyals","ssyalt","ssyalp","ssyalh","ssyam","ssyab","ssyabs","ssyas","ssyass","ssyang","ssyaj","ssyac","ssyak","ssyat","ssyap","ssyah","ssyae","ssyaeg","ssyaegg","ssyaegs","ssyaen","ssyaenj","ssyaenh","ssyaed","ssyael","ssyaelg","ssyaelm","ssyaelb","ssyaels","ssyaelt","ssyaelp","ssyaelh","ssyaem","ssyaeb","ssyaebs","ssyaes","ssyaess","ssyaeng","ssyaej","ssyaec","ssyaek","ssyaet","ssyaep","ssyaeh","sseo","sseog","sseogg","sseogs","sseon","sseonj","sseonh","sseod","sseol","sseolg","sseolm","sseolb","sseols","sseolt","sseolp","sseolh","sseom","sseob","sseobs","sseos","sseoss","sseong","sseoj","sseoc","sseok","sseot","sseop","sseoh","sse","sseg","ssegg","ssegs","ssen","ssenj","ssenh","ssed","ssel","sselg","sselm","sselb","ssels","sselt","sselp","sselh","ssem","sseb","ssebs","sses","ssess","sseng","ssej","ssec","ssek","sset","ssep","sseh","ssyeo","ssyeog","ssyeogg","ssyeogs","ssyeon","ssyeonj","ssyeonh","ssyeod","ssyeol","ssyeolg","ssyeolm","ssyeolb","ssyeols","ssyeolt","ssyeolp","ssyeolh","ssyeom","ssyeob","ssyeobs","ssyeos","ssyeoss","ssyeong","ssyeoj","ssyeoc","ssyeok","ssyeot","ssyeop","ssyeoh","ssye","ssyeg","ssyegg","ssyegs","ssyen","ssyenj","ssyenh","ssyed","ssyel","ssyelg","ssyelm","ssyelb","ssyels","ssyelt","ssyelp","ssyelh","ssyem","ssyeb","ssyebs","ssyes","ssyess","ssyeng","ssyej","ssyec","ssyek","ssyet","ssyep","ssyeh","sso","ssog","ssogg","ssogs","sson","ssonj","ssonh","ssod","ssol","ssolg","ssolm","ssolb","ssols","ssolt","ssolp","ssolh","ssom","ssob","ssobs","ssos","ssoss","ssong","ssoj","ssoc","ssok","ssot","ssop","ssoh","sswa","sswag","sswagg","sswags","sswan","sswanj","sswanh","sswad","sswal","sswalg","sswalm","sswalb"]});var jB=v((qSe,MB)=>{MB.exports=["sswals","sswalt","sswalp","sswalh","sswam","sswab","sswabs","sswas","sswass","sswang","sswaj","sswac","sswak","sswat","sswap","sswah","sswae","sswaeg","sswaegg","sswaegs","sswaen","sswaenj","sswaenh","sswaed","sswael","sswaelg","sswaelm","sswaelb","sswaels","sswaelt","sswaelp","sswaelh","sswaem","sswaeb","sswaebs","sswaes","sswaess","sswaeng","sswaej","sswaec","sswaek","sswaet","sswaep","sswaeh","ssoe","ssoeg","ssoegg","ssoegs","ssoen","ssoenj","ssoenh","ssoed","ssoel","ssoelg","ssoelm","ssoelb","ssoels","ssoelt","ssoelp","ssoelh","ssoem","ssoeb","ssoebs","ssoes","ssoess","ssoeng","ssoej","ssoec","ssoek","ssoet","ssoep","ssoeh","ssyo","ssyog","ssyogg","ssyogs","ssyon","ssyonj","ssyonh","ssyod","ssyol","ssyolg","ssyolm","ssyolb","ssyols","ssyolt","ssyolp","ssyolh","ssyom","ssyob","ssyobs","ssyos","ssyoss","ssyong","ssyoj","ssyoc","ssyok","ssyot","ssyop","ssyoh","ssu","ssug","ssugg","ssugs","ssun","ssunj","ssunh","ssud","ssul","ssulg","ssulm","ssulb","ssuls","ssult","ssulp","ssulh","ssum","ssub","ssubs","ssus","ssuss","ssung","ssuj","ssuc","ssuk","ssut","ssup","ssuh","ssweo","ssweog","ssweogg","ssweogs","ssweon","ssweonj","ssweonh","ssweod","ssweol","ssweolg","ssweolm","ssweolb","ssweols","ssweolt","ssweolp","ssweolh","ssweom","ssweob","ssweobs","ssweos","ssweoss","ssweong","ssweoj","ssweoc","ssweok","ssweot","ssweop","ssweoh","sswe","ssweg","sswegg","sswegs","sswen","sswenj","sswenh","sswed","sswel","sswelg","sswelm","sswelb","sswels","sswelt","sswelp","sswelh","sswem","ssweb","sswebs","sswes","sswess","ssweng","sswej","sswec","sswek","sswet","sswep","ssweh","sswi","sswig","sswigg","sswigs","sswin","sswinj","sswinh","sswid","sswil","sswilg","sswilm","sswilb","sswils","sswilt","sswilp","sswilh","sswim","sswib","sswibs","sswis","sswiss","sswing","sswij","sswic","sswik","sswit","sswip","sswih","ssyu","ssyug","ssyugg","ssyugs","ssyun","ssyunj","ssyunh","ssyud","ssyul","ssyulg","ssyulm","ssyulb","ssyuls","ssyult","ssyulp","ssyulh","ssyum","ssyub","ssyubs","ssyus","ssyuss","ssyung","ssyuj","ssyuc","ssyuk","ssyut","ssyup","ssyuh","sseu","sseug","sseugg","sseugs","sseun","sseunj","sseunh","sseud","sseul","sseulg","sseulm","sseulb","sseuls","sseult","sseulp","sseulh"]});var AB=v((WSe,OB)=>{OB.exports=["sseum","sseub","sseubs","sseus","sseuss","sseung","sseuj","sseuc","sseuk","sseut","sseup","sseuh","ssyi","ssyig","ssyigg","ssyigs","ssyin","ssyinj","ssyinh","ssyid","ssyil","ssyilg","ssyilm","ssyilb","ssyils","ssyilt","ssyilp","ssyilh","ssyim","ssyib","ssyibs","ssyis","ssyiss","ssying","ssyij","ssyic","ssyik","ssyit","ssyip","ssyih","ssi","ssig","ssigg","ssigs","ssin","ssinj","ssinh","ssid","ssil","ssilg","ssilm","ssilb","ssils","ssilt","ssilp","ssilh","ssim","ssib","ssibs","ssis","ssiss","ssing","ssij","ssic","ssik","ssit","ssip","ssih","a","ag","agg","ags","an","anj","anh","ad","al","alg","alm","alb","als","alt","alp","alh","am","ab","abs","as","ass","ang","aj","ac","ak","at","ap","ah","ae","aeg","aegg","aegs","aen","aenj","aenh","aed","ael","aelg","aelm","aelb","aels","aelt","aelp","aelh","aem","aeb","aebs","aes","aess","aeng","aej","aec","aek","aet","aep","aeh","ya","yag","yagg","yags","yan","yanj","yanh","yad","yal","yalg","yalm","yalb","yals","yalt","yalp","yalh","yam","yab","yabs","yas","yass","yang","yaj","yac","yak","yat","yap","yah","yae","yaeg","yaegg","yaegs","yaen","yaenj","yaenh","yaed","yael","yaelg","yaelm","yaelb","yaels","yaelt","yaelp","yaelh","yaem","yaeb","yaebs","yaes","yaess","yaeng","yaej","yaec","yaek","yaet","yaep","yaeh","eo","eog","eogg","eogs","eon","eonj","eonh","eod","eol","eolg","eolm","eolb","eols","eolt","eolp","eolh","eom","eob","eobs","eos","eoss","eong","eoj","eoc","eok","eot","eop","eoh","e","eg","egg","egs","en","enj","enh","ed","el","elg","elm","elb","els","elt","elp","elh","em","eb","ebs","es","ess","eng","ej","ec","ek","et","ep","eh","yeo","yeog","yeogg","yeogs","yeon","yeonj","yeonh","yeod","yeol","yeolg","yeolm","yeolb","yeols","yeolt","yeolp","yeolh","yeom","yeob","yeobs","yeos"]});var HB=v((YSe,NB)=>{NB.exports=["yeoss","yeong","yeoj","yeoc","yeok","yeot","yeop","yeoh","ye","yeg","yegg","yegs","yen","yenj","yenh","yed","yel","yelg","yelm","yelb","yels","yelt","yelp","yelh","yem","yeb","yebs","yes","yess","yeng","yej","yec","yek","yet","yep","yeh","o","og","ogg","ogs","on","onj","onh","od","ol","olg","olm","olb","ols","olt","olp","olh","om","ob","obs","os","oss","ong","oj","oc","ok","ot","op","oh","wa","wag","wagg","wags","wan","wanj","wanh","wad","wal","walg","walm","walb","wals","walt","walp","walh","wam","wab","wabs","was","wass","wang","waj","wac","wak","wat","wap","wah","wae","waeg","waegg","waegs","waen","waenj","waenh","waed","wael","waelg","waelm","waelb","waels","waelt","waelp","waelh","waem","waeb","waebs","waes","waess","waeng","waej","waec","waek","waet","waep","waeh","oe","oeg","oegg","oegs","oen","oenj","oenh","oed","oel","oelg","oelm","oelb","oels","oelt","oelp","oelh","oem","oeb","oebs","oes","oess","oeng","oej","oec","oek","oet","oep","oeh","yo","yog","yogg","yogs","yon","yonj","yonh","yod","yol","yolg","yolm","yolb","yols","yolt","yolp","yolh","yom","yob","yobs","yos","yoss","yong","yoj","yoc","yok","yot","yop","yoh","u","ug","ugg","ugs","un","unj","unh","ud","ul","ulg","ulm","ulb","uls","ult","ulp","ulh","um","ub","ubs","us","uss","ung","uj","uc","uk","ut","up","uh","weo","weog","weogg","weogs","weon","weonj","weonh","weod","weol","weolg","weolm","weolb","weols","weolt","weolp","weolh","weom","weob","weobs","weos","weoss","weong","weoj","weoc","weok","weot","weop","weoh","we","weg","wegg","wegs","wen","wenj","wenh","wed","wel","welg","welm","welb","wels","welt","welp","welh","wem","web","webs","wes","wess","weng","wej","wec"]});var qB=v((ZSe,BB)=>{BB.exports=["wek","wet","wep","weh","wi","wig","wigg","wigs","win","winj","winh","wid","wil","wilg","wilm","wilb","wils","wilt","wilp","wilh","wim","wib","wibs","wis","wiss","wing","wij","wic","wik","wit","wip","wih","yu","yug","yugg","yugs","yun","yunj","yunh","yud","yul","yulg","yulm","yulb","yuls","yult","yulp","yulh","yum","yub","yubs","yus","yuss","yung","yuj","yuc","yuk","yut","yup","yuh","eu","eug","eugg","eugs","eun","eunj","eunh","eud","eul","eulg","eulm","eulb","euls","eult","eulp","eulh","eum","eub","eubs","eus","euss","eung","euj","euc","euk","eut","eup","euh","yi","yig","yigg","yigs","yin","yinj","yinh","yid","yil","yilg","yilm","yilb","yils","yilt","yilp","yilh","yim","yib","yibs","yis","yiss","ying","yij","yic","yik","yit","yip","yih","i","ig","igg","igs","in","inj","inh","id","il","ilg","ilm","ilb","ils","ilt","ilp","ilh","im","ib","ibs","is","iss","ing","ij","ic","ik","it","ip","ih","ja","jag","jagg","jags","jan","janj","janh","jad","jal","jalg","jalm","jalb","jals","jalt","jalp","jalh","jam","jab","jabs","jas","jass","jang","jaj","jac","jak","jat","jap","jah","jae","jaeg","jaegg","jaegs","jaen","jaenj","jaenh","jaed","jael","jaelg","jaelm","jaelb","jaels","jaelt","jaelp","jaelh","jaem","jaeb","jaebs","jaes","jaess","jaeng","jaej","jaec","jaek","jaet","jaep","jaeh","jya","jyag","jyagg","jyags","jyan","jyanj","jyanh","jyad","jyal","jyalg","jyalm","jyalb","jyals","jyalt","jyalp","jyalh","jyam","jyab","jyabs","jyas","jyass","jyang","jyaj","jyac","jyak","jyat","jyap","jyah","jyae","jyaeg","jyaegg","jyaegs","jyaen","jyaenj","jyaenh","jyaed","jyael","jyaelg","jyaelm","jyaelb","jyaels","jyaelt","jyaelp","jyaelh","jyaem","jyaeb","jyaebs","jyaes","jyaess","jyaeng","jyaej","jyaec","jyaek","jyaet","jyaep","jyaeh"]});var YB=v((JSe,WB)=>{WB.exports=["jeo","jeog","jeogg","jeogs","jeon","jeonj","jeonh","jeod","jeol","jeolg","jeolm","jeolb","jeols","jeolt","jeolp","jeolh","jeom","jeob","jeobs","jeos","jeoss","jeong","jeoj","jeoc","jeok","jeot","jeop","jeoh","je","jeg","jegg","jegs","jen","jenj","jenh","jed","jel","jelg","jelm","jelb","jels","jelt","jelp","jelh","jem","jeb","jebs","jes","jess","jeng","jej","jec","jek","jet","jep","jeh","jyeo","jyeog","jyeogg","jyeogs","jyeon","jyeonj","jyeonh","jyeod","jyeol","jyeolg","jyeolm","jyeolb","jyeols","jyeolt","jyeolp","jyeolh","jyeom","jyeob","jyeobs","jyeos","jyeoss","jyeong","jyeoj","jyeoc","jyeok","jyeot","jyeop","jyeoh","jye","jyeg","jyegg","jyegs","jyen","jyenj","jyenh","jyed","jyel","jyelg","jyelm","jyelb","jyels","jyelt","jyelp","jyelh","jyem","jyeb","jyebs","jyes","jyess","jyeng","jyej","jyec","jyek","jyet","jyep","jyeh","jo","jog","jogg","jogs","jon","jonj","jonh","jod","jol","jolg","jolm","jolb","jols","jolt","jolp","jolh","jom","job","jobs","jos","joss","jong","joj","joc","jok","jot","jop","joh","jwa","jwag","jwagg","jwags","jwan","jwanj","jwanh","jwad","jwal","jwalg","jwalm","jwalb","jwals","jwalt","jwalp","jwalh","jwam","jwab","jwabs","jwas","jwass","jwang","jwaj","jwac","jwak","jwat","jwap","jwah","jwae","jwaeg","jwaegg","jwaegs","jwaen","jwaenj","jwaenh","jwaed","jwael","jwaelg","jwaelm","jwaelb","jwaels","jwaelt","jwaelp","jwaelh","jwaem","jwaeb","jwaebs","jwaes","jwaess","jwaeng","jwaej","jwaec","jwaek","jwaet","jwaep","jwaeh","joe","joeg","joegg","joegs","joen","joenj","joenh","joed","joel","joelg","joelm","joelb","joels","joelt","joelp","joelh","joem","joeb","joebs","joes","joess","joeng","joej","joec","joek","joet","joep","joeh","jyo","jyog","jyogg","jyogs","jyon","jyonj","jyonh","jyod","jyol","jyolg","jyolm","jyolb","jyols","jyolt","jyolp","jyolh","jyom","jyob","jyobs","jyos","jyoss","jyong","jyoj","jyoc","jyok","jyot","jyop","jyoh","ju","jug","jugg","jugs"]});var JB=v((USe,ZB)=>{ZB.exports=["jun","junj","junh","jud","jul","julg","julm","julb","juls","jult","julp","julh","jum","jub","jubs","jus","juss","jung","juj","juc","juk","jut","jup","juh","jweo","jweog","jweogg","jweogs","jweon","jweonj","jweonh","jweod","jweol","jweolg","jweolm","jweolb","jweols","jweolt","jweolp","jweolh","jweom","jweob","jweobs","jweos","jweoss","jweong","jweoj","jweoc","jweok","jweot","jweop","jweoh","jwe","jweg","jwegg","jwegs","jwen","jwenj","jwenh","jwed","jwel","jwelg","jwelm","jwelb","jwels","jwelt","jwelp","jwelh","jwem","jweb","jwebs","jwes","jwess","jweng","jwej","jwec","jwek","jwet","jwep","jweh","jwi","jwig","jwigg","jwigs","jwin","jwinj","jwinh","jwid","jwil","jwilg","jwilm","jwilb","jwils","jwilt","jwilp","jwilh","jwim","jwib","jwibs","jwis","jwiss","jwing","jwij","jwic","jwik","jwit","jwip","jwih","jyu","jyug","jyugg","jyugs","jyun","jyunj","jyunh","jyud","jyul","jyulg","jyulm","jyulb","jyuls","jyult","jyulp","jyulh","jyum","jyub","jyubs","jyus","jyuss","jyung","jyuj","jyuc","jyuk","jyut","jyup","jyuh","jeu","jeug","jeugg","jeugs","jeun","jeunj","jeunh","jeud","jeul","jeulg","jeulm","jeulb","jeuls","jeult","jeulp","jeulh","jeum","jeub","jeubs","jeus","jeuss","jeung","jeuj","jeuc","jeuk","jeut","jeup","jeuh","jyi","jyig","jyigg","jyigs","jyin","jyinj","jyinh","jyid","jyil","jyilg","jyilm","jyilb","jyils","jyilt","jyilp","jyilh","jyim","jyib","jyibs","jyis","jyiss","jying","jyij","jyic","jyik","jyit","jyip","jyih","ji","jig","jigg","jigs","jin","jinj","jinh","jid","jil","jilg","jilm","jilb","jils","jilt","jilp","jilh","jim","jib","jibs","jis","jiss","jing","jij","jic","jik","jit","jip","jih","jja","jjag","jjagg","jjags","jjan","jjanj","jjanh","jjad","jjal","jjalg","jjalm","jjalb","jjals","jjalt","jjalp","jjalh","jjam","jjab","jjabs","jjas","jjass","jjang","jjaj","jjac","jjak","jjat","jjap","jjah","jjae","jjaeg","jjaegg","jjaegs","jjaen","jjaenj","jjaenh","jjaed"]});var $B=v(($Se,UB)=>{UB.exports=["jjael","jjaelg","jjaelm","jjaelb","jjaels","jjaelt","jjaelp","jjaelh","jjaem","jjaeb","jjaebs","jjaes","jjaess","jjaeng","jjaej","jjaec","jjaek","jjaet","jjaep","jjaeh","jjya","jjyag","jjyagg","jjyags","jjyan","jjyanj","jjyanh","jjyad","jjyal","jjyalg","jjyalm","jjyalb","jjyals","jjyalt","jjyalp","jjyalh","jjyam","jjyab","jjyabs","jjyas","jjyass","jjyang","jjyaj","jjyac","jjyak","jjyat","jjyap","jjyah","jjyae","jjyaeg","jjyaegg","jjyaegs","jjyaen","jjyaenj","jjyaenh","jjyaed","jjyael","jjyaelg","jjyaelm","jjyaelb","jjyaels","jjyaelt","jjyaelp","jjyaelh","jjyaem","jjyaeb","jjyaebs","jjyaes","jjyaess","jjyaeng","jjyaej","jjyaec","jjyaek","jjyaet","jjyaep","jjyaeh","jjeo","jjeog","jjeogg","jjeogs","jjeon","jjeonj","jjeonh","jjeod","jjeol","jjeolg","jjeolm","jjeolb","jjeols","jjeolt","jjeolp","jjeolh","jjeom","jjeob","jjeobs","jjeos","jjeoss","jjeong","jjeoj","jjeoc","jjeok","jjeot","jjeop","jjeoh","jje","jjeg","jjegg","jjegs","jjen","jjenj","jjenh","jjed","jjel","jjelg","jjelm","jjelb","jjels","jjelt","jjelp","jjelh","jjem","jjeb","jjebs","jjes","jjess","jjeng","jjej","jjec","jjek","jjet","jjep","jjeh","jjyeo","jjyeog","jjyeogg","jjyeogs","jjyeon","jjyeonj","jjyeonh","jjyeod","jjyeol","jjyeolg","jjyeolm","jjyeolb","jjyeols","jjyeolt","jjyeolp","jjyeolh","jjyeom","jjyeob","jjyeobs","jjyeos","jjyeoss","jjyeong","jjyeoj","jjyeoc","jjyeok","jjyeot","jjyeop","jjyeoh","jjye","jjyeg","jjyegg","jjyegs","jjyen","jjyenj","jjyenh","jjyed","jjyel","jjyelg","jjyelm","jjyelb","jjyels","jjyelt","jjyelp","jjyelh","jjyem","jjyeb","jjyebs","jjyes","jjyess","jjyeng","jjyej","jjyec","jjyek","jjyet","jjyep","jjyeh","jjo","jjog","jjogg","jjogs","jjon","jjonj","jjonh","jjod","jjol","jjolg","jjolm","jjolb","jjols","jjolt","jjolp","jjolh","jjom","jjob","jjobs","jjos","jjoss","jjong","jjoj","jjoc","jjok","jjot","jjop","jjoh","jjwa","jjwag","jjwagg","jjwags","jjwan","jjwanj","jjwanh","jjwad","jjwal","jjwalg","jjwalm","jjwalb","jjwals","jjwalt","jjwalp","jjwalh","jjwam","jjwab","jjwabs","jjwas","jjwass","jjwang","jjwaj","jjwac","jjwak","jjwat","jjwap","jjwah","jjwae","jjwaeg","jjwaegg","jjwaegs","jjwaen","jjwaenj","jjwaenh","jjwaed","jjwael","jjwaelg","jjwaelm","jjwaelb"]});var GB=v((XSe,XB)=>{XB.exports=["jjwaels","jjwaelt","jjwaelp","jjwaelh","jjwaem","jjwaeb","jjwaebs","jjwaes","jjwaess","jjwaeng","jjwaej","jjwaec","jjwaek","jjwaet","jjwaep","jjwaeh","jjoe","jjoeg","jjoegg","jjoegs","jjoen","jjoenj","jjoenh","jjoed","jjoel","jjoelg","jjoelm","jjoelb","jjoels","jjoelt","jjoelp","jjoelh","jjoem","jjoeb","jjoebs","jjoes","jjoess","jjoeng","jjoej","jjoec","jjoek","jjoet","jjoep","jjoeh","jjyo","jjyog","jjyogg","jjyogs","jjyon","jjyonj","jjyonh","jjyod","jjyol","jjyolg","jjyolm","jjyolb","jjyols","jjyolt","jjyolp","jjyolh","jjyom","jjyob","jjyobs","jjyos","jjyoss","jjyong","jjyoj","jjyoc","jjyok","jjyot","jjyop","jjyoh","jju","jjug","jjugg","jjugs","jjun","jjunj","jjunh","jjud","jjul","jjulg","jjulm","jjulb","jjuls","jjult","jjulp","jjulh","jjum","jjub","jjubs","jjus","jjuss","jjung","jjuj","jjuc","jjuk","jjut","jjup","jjuh","jjweo","jjweog","jjweogg","jjweogs","jjweon","jjweonj","jjweonh","jjweod","jjweol","jjweolg","jjweolm","jjweolb","jjweols","jjweolt","jjweolp","jjweolh","jjweom","jjweob","jjweobs","jjweos","jjweoss","jjweong","jjweoj","jjweoc","jjweok","jjweot","jjweop","jjweoh","jjwe","jjweg","jjwegg","jjwegs","jjwen","jjwenj","jjwenh","jjwed","jjwel","jjwelg","jjwelm","jjwelb","jjwels","jjwelt","jjwelp","jjwelh","jjwem","jjweb","jjwebs","jjwes","jjwess","jjweng","jjwej","jjwec","jjwek","jjwet","jjwep","jjweh","jjwi","jjwig","jjwigg","jjwigs","jjwin","jjwinj","jjwinh","jjwid","jjwil","jjwilg","jjwilm","jjwilb","jjwils","jjwilt","jjwilp","jjwilh","jjwim","jjwib","jjwibs","jjwis","jjwiss","jjwing","jjwij","jjwic","jjwik","jjwit","jjwip","jjwih","jjyu","jjyug","jjyugg","jjyugs","jjyun","jjyunj","jjyunh","jjyud","jjyul","jjyulg","jjyulm","jjyulb","jjyuls","jjyult","jjyulp","jjyulh","jjyum","jjyub","jjyubs","jjyus","jjyuss","jjyung","jjyuj","jjyuc","jjyuk","jjyut","jjyup","jjyuh","jjeu","jjeug","jjeugg","jjeugs","jjeun","jjeunj","jjeunh","jjeud","jjeul","jjeulg","jjeulm","jjeulb","jjeuls","jjeult","jjeulp","jjeulh","jjeum","jjeub","jjeubs","jjeus","jjeuss","jjeung","jjeuj","jjeuc","jjeuk","jjeut","jjeup","jjeuh","jjyi","jjyig","jjyigg","jjyigs","jjyin","jjyinj","jjyinh","jjyid","jjyil","jjyilg","jjyilm","jjyilb","jjyils","jjyilt","jjyilp","jjyilh"]});var KB=v((GSe,zB)=>{zB.exports=["jjyim","jjyib","jjyibs","jjyis","jjyiss","jjying","jjyij","jjyic","jjyik","jjyit","jjyip","jjyih","jji","jjig","jjigg","jjigs","jjin","jjinj","jjinh","jjid","jjil","jjilg","jjilm","jjilb","jjils","jjilt","jjilp","jjilh","jjim","jjib","jjibs","jjis","jjiss","jjing","jjij","jjic","jjik","jjit","jjip","jjih","ca","cag","cagg","cags","can","canj","canh","cad","cal","calg","calm","calb","cals","calt","calp","calh","cam","cab","cabs","cas","cass","cang","caj","cac","cak","cat","cap","cah","cae","caeg","caegg","caegs","caen","caenj","caenh","caed","cael","caelg","caelm","caelb","caels","caelt","caelp","caelh","caem","caeb","caebs","caes","caess","caeng","caej","caec","caek","caet","caep","caeh","cya","cyag","cyagg","cyags","cyan","cyanj","cyanh","cyad","cyal","cyalg","cyalm","cyalb","cyals","cyalt","cyalp","cyalh","cyam","cyab","cyabs","cyas","cyass","cyang","cyaj","cyac","cyak","cyat","cyap","cyah","cyae","cyaeg","cyaegg","cyaegs","cyaen","cyaenj","cyaenh","cyaed","cyael","cyaelg","cyaelm","cyaelb","cyaels","cyaelt","cyaelp","cyaelh","cyaem","cyaeb","cyaebs","cyaes","cyaess","cyaeng","cyaej","cyaec","cyaek","cyaet","cyaep","cyaeh","ceo","ceog","ceogg","ceogs","ceon","ceonj","ceonh","ceod","ceol","ceolg","ceolm","ceolb","ceols","ceolt","ceolp","ceolh","ceom","ceob","ceobs","ceos","ceoss","ceong","ceoj","ceoc","ceok","ceot","ceop","ceoh","ce","ceg","cegg","cegs","cen","cenj","cenh","ced","cel","celg","celm","celb","cels","celt","celp","celh","cem","ceb","cebs","ces","cess","ceng","cej","cec","cek","cet","cep","ceh","cyeo","cyeog","cyeogg","cyeogs","cyeon","cyeonj","cyeonh","cyeod","cyeol","cyeolg","cyeolm","cyeolb","cyeols","cyeolt","cyeolp","cyeolh","cyeom","cyeob","cyeobs","cyeos","cyeoss","cyeong","cyeoj","cyeoc","cyeok","cyeot","cyeop","cyeoh","cye","cyeg","cyegg","cyegs","cyen","cyenj","cyenh","cyed","cyel","cyelg","cyelm","cyelb","cyels","cyelt","cyelp","cyelh","cyem","cyeb","cyebs","cyes"]});var VB=v((zSe,QB)=>{QB.exports=["cyess","cyeng","cyej","cyec","cyek","cyet","cyep","cyeh","co","cog","cogg","cogs","con","conj","conh","cod","col","colg","colm","colb","cols","colt","colp","colh","com","cob","cobs","cos","coss","cong","coj","coc","cok","cot","cop","coh","cwa","cwag","cwagg","cwags","cwan","cwanj","cwanh","cwad","cwal","cwalg","cwalm","cwalb","cwals","cwalt","cwalp","cwalh","cwam","cwab","cwabs","cwas","cwass","cwang","cwaj","cwac","cwak","cwat","cwap","cwah","cwae","cwaeg","cwaegg","cwaegs","cwaen","cwaenj","cwaenh","cwaed","cwael","cwaelg","cwaelm","cwaelb","cwaels","cwaelt","cwaelp","cwaelh","cwaem","cwaeb","cwaebs","cwaes","cwaess","cwaeng","cwaej","cwaec","cwaek","cwaet","cwaep","cwaeh","coe","coeg","coegg","coegs","coen","coenj","coenh","coed","coel","coelg","coelm","coelb","coels","coelt","coelp","coelh","coem","coeb","coebs","coes","coess","coeng","coej","coec","coek","coet","coep","coeh","cyo","cyog","cyogg","cyogs","cyon","cyonj","cyonh","cyod","cyol","cyolg","cyolm","cyolb","cyols","cyolt","cyolp","cyolh","cyom","cyob","cyobs","cyos","cyoss","cyong","cyoj","cyoc","cyok","cyot","cyop","cyoh","cu","cug","cugg","cugs","cun","cunj","cunh","cud","cul","culg","culm","culb","culs","cult","culp","culh","cum","cub","cubs","cus","cuss","cung","cuj","cuc","cuk","cut","cup","cuh","cweo","cweog","cweogg","cweogs","cweon","cweonj","cweonh","cweod","cweol","cweolg","cweolm","cweolb","cweols","cweolt","cweolp","cweolh","cweom","cweob","cweobs","cweos","cweoss","cweong","cweoj","cweoc","cweok","cweot","cweop","cweoh","cwe","cweg","cwegg","cwegs","cwen","cwenj","cwenh","cwed","cwel","cwelg","cwelm","cwelb","cwels","cwelt","cwelp","cwelh","cwem","cweb","cwebs","cwes","cwess","cweng","cwej","cwec","cwek","cwet","cwep","cweh","cwi","cwig","cwigg","cwigs","cwin","cwinj","cwinh","cwid","cwil","cwilg","cwilm","cwilb","cwils","cwilt","cwilp","cwilh","cwim","cwib","cwibs","cwis","cwiss","cwing","cwij","cwic"]});var tq=v((KSe,eq)=>{eq.exports=["cwik","cwit","cwip","cwih","cyu","cyug","cyugg","cyugs","cyun","cyunj","cyunh","cyud","cyul","cyulg","cyulm","cyulb","cyuls","cyult","cyulp","cyulh","cyum","cyub","cyubs","cyus","cyuss","cyung","cyuj","cyuc","cyuk","cyut","cyup","cyuh","ceu","ceug","ceugg","ceugs","ceun","ceunj","ceunh","ceud","ceul","ceulg","ceulm","ceulb","ceuls","ceult","ceulp","ceulh","ceum","ceub","ceubs","ceus","ceuss","ceung","ceuj","ceuc","ceuk","ceut","ceup","ceuh","cyi","cyig","cyigg","cyigs","cyin","cyinj","cyinh","cyid","cyil","cyilg","cyilm","cyilb","cyils","cyilt","cyilp","cyilh","cyim","cyib","cyibs","cyis","cyiss","cying","cyij","cyic","cyik","cyit","cyip","cyih","ci","cig","cigg","cigs","cin","cinj","cinh","cid","cil","cilg","cilm","cilb","cils","cilt","cilp","cilh","cim","cib","cibs","cis","ciss","cing","cij","cic","cik","cit","cip","cih","ka","kag","kagg","kags","kan","kanj","kanh","kad","kal","kalg","kalm","kalb","kals","kalt","kalp","kalh","kam","kab","kabs","kas","kass","kang","kaj","kac","kak","kat","kap","kah","kae","kaeg","kaegg","kaegs","kaen","kaenj","kaenh","kaed","kael","kaelg","kaelm","kaelb","kaels","kaelt","kaelp","kaelh","kaem","kaeb","kaebs","kaes","kaess","kaeng","kaej","kaec","kaek","kaet","kaep","kaeh","kya","kyag","kyagg","kyags","kyan","kyanj","kyanh","kyad","kyal","kyalg","kyalm","kyalb","kyals","kyalt","kyalp","kyalh","kyam","kyab","kyabs","kyas","kyass","kyang","kyaj","kyac","kyak","kyat","kyap","kyah","kyae","kyaeg","kyaegg","kyaegs","kyaen","kyaenj","kyaenh","kyaed","kyael","kyaelg","kyaelm","kyaelb","kyaels","kyaelt","kyaelp","kyaelh","kyaem","kyaeb","kyaebs","kyaes","kyaess","kyaeng","kyaej","kyaec","kyaek","kyaet","kyaep","kyaeh","keo","keog","keogg","keogs","keon","keonj","keonh","keod","keol","keolg","keolm","keolb","keols","keolt","keolp","keolh","keom","keob","keobs","keos","keoss","keong","keoj","keoc","keok","keot","keop","keoh"]});var nq=v((QSe,iq)=>{iq.exports=["ke","keg","kegg","kegs","ken","kenj","kenh","ked","kel","kelg","kelm","kelb","kels","kelt","kelp","kelh","kem","keb","kebs","kes","kess","keng","kej","kec","kek","ket","kep","keh","kyeo","kyeog","kyeogg","kyeogs","kyeon","kyeonj","kyeonh","kyeod","kyeol","kyeolg","kyeolm","kyeolb","kyeols","kyeolt","kyeolp","kyeolh","kyeom","kyeob","kyeobs","kyeos","kyeoss","kyeong","kyeoj","kyeoc","kyeok","kyeot","kyeop","kyeoh","kye","kyeg","kyegg","kyegs","kyen","kyenj","kyenh","kyed","kyel","kyelg","kyelm","kyelb","kyels","kyelt","kyelp","kyelh","kyem","kyeb","kyebs","kyes","kyess","kyeng","kyej","kyec","kyek","kyet","kyep","kyeh","ko","kog","kogg","kogs","kon","konj","konh","kod","kol","kolg","kolm","kolb","kols","kolt","kolp","kolh","kom","kob","kobs","kos","koss","kong","koj","koc","kok","kot","kop","koh","kwa","kwag","kwagg","kwags","kwan","kwanj","kwanh","kwad","kwal","kwalg","kwalm","kwalb","kwals","kwalt","kwalp","kwalh","kwam","kwab","kwabs","kwas","kwass","kwang","kwaj","kwac","kwak","kwat","kwap","kwah","kwae","kwaeg","kwaegg","kwaegs","kwaen","kwaenj","kwaenh","kwaed","kwael","kwaelg","kwaelm","kwaelb","kwaels","kwaelt","kwaelp","kwaelh","kwaem","kwaeb","kwaebs","kwaes","kwaess","kwaeng","kwaej","kwaec","kwaek","kwaet","kwaep","kwaeh","koe","koeg","koegg","koegs","koen","koenj","koenh","koed","koel","koelg","koelm","koelb","koels","koelt","koelp","koelh","koem","koeb","koebs","koes","koess","koeng","koej","koec","koek","koet","koep","koeh","kyo","kyog","kyogg","kyogs","kyon","kyonj","kyonh","kyod","kyol","kyolg","kyolm","kyolb","kyols","kyolt","kyolp","kyolh","kyom","kyob","kyobs","kyos","kyoss","kyong","kyoj","kyoc","kyok","kyot","kyop","kyoh","ku","kug","kugg","kugs","kun","kunj","kunh","kud","kul","kulg","kulm","kulb","kuls","kult","kulp","kulh","kum","kub","kubs","kus","kuss","kung","kuj","kuc","kuk","kut","kup","kuh","kweo","kweog","kweogg","kweogs"]});var oq=v((VSe,rq)=>{rq.exports=["kweon","kweonj","kweonh","kweod","kweol","kweolg","kweolm","kweolb","kweols","kweolt","kweolp","kweolh","kweom","kweob","kweobs","kweos","kweoss","kweong","kweoj","kweoc","kweok","kweot","kweop","kweoh","kwe","kweg","kwegg","kwegs","kwen","kwenj","kwenh","kwed","kwel","kwelg","kwelm","kwelb","kwels","kwelt","kwelp","kwelh","kwem","kweb","kwebs","kwes","kwess","kweng","kwej","kwec","kwek","kwet","kwep","kweh","kwi","kwig","kwigg","kwigs","kwin","kwinj","kwinh","kwid","kwil","kwilg","kwilm","kwilb","kwils","kwilt","kwilp","kwilh","kwim","kwib","kwibs","kwis","kwiss","kwing","kwij","kwic","kwik","kwit","kwip","kwih","kyu","kyug","kyugg","kyugs","kyun","kyunj","kyunh","kyud","kyul","kyulg","kyulm","kyulb","kyuls","kyult","kyulp","kyulh","kyum","kyub","kyubs","kyus","kyuss","kyung","kyuj","kyuc","kyuk","kyut","kyup","kyuh","keu","keug","keugg","keugs","keun","keunj","keunh","keud","keul","keulg","keulm","keulb","keuls","keult","keulp","keulh","keum","keub","keubs","keus","keuss","keung","keuj","keuc","keuk","keut","keup","keuh","kyi","kyig","kyigg","kyigs","kyin","kyinj","kyinh","kyid","kyil","kyilg","kyilm","kyilb","kyils","kyilt","kyilp","kyilh","kyim","kyib","kyibs","kyis","kyiss","kying","kyij","kyic","kyik","kyit","kyip","kyih","ki","kig","kigg","kigs","kin","kinj","kinh","kid","kil","kilg","kilm","kilb","kils","kilt","kilp","kilh","kim","kib","kibs","kis","kiss","king","kij","kic","kik","kit","kip","kih","ta","tag","tagg","tags","tan","tanj","tanh","tad","tal","talg","talm","talb","tals","talt","talp","talh","tam","tab","tabs","tas","tass","tang","taj","tac","tak","tat","tap","tah","tae","taeg","taegg","taegs","taen","taenj","taenh","taed","tael","taelg","taelm","taelb","taels","taelt","taelp","taelh","taem","taeb","taebs","taes","taess","taeng","taej","taec","taek","taet","taep","taeh","tya","tyag","tyagg","tyags","tyan","tyanj","tyanh","tyad"]});var aq=v((e0e,sq)=>{sq.exports=["tyal","tyalg","tyalm","tyalb","tyals","tyalt","tyalp","tyalh","tyam","tyab","tyabs","tyas","tyass","tyang","tyaj","tyac","tyak","tyat","tyap","tyah","tyae","tyaeg","tyaegg","tyaegs","tyaen","tyaenj","tyaenh","tyaed","tyael","tyaelg","tyaelm","tyaelb","tyaels","tyaelt","tyaelp","tyaelh","tyaem","tyaeb","tyaebs","tyaes","tyaess","tyaeng","tyaej","tyaec","tyaek","tyaet","tyaep","tyaeh","teo","teog","teogg","teogs","teon","teonj","teonh","teod","teol","teolg","teolm","teolb","teols","teolt","teolp","teolh","teom","teob","teobs","teos","teoss","teong","teoj","teoc","teok","teot","teop","teoh","te","teg","tegg","tegs","ten","tenj","tenh","ted","tel","telg","telm","telb","tels","telt","telp","telh","tem","teb","tebs","tes","tess","teng","tej","tec","tek","tet","tep","teh","tyeo","tyeog","tyeogg","tyeogs","tyeon","tyeonj","tyeonh","tyeod","tyeol","tyeolg","tyeolm","tyeolb","tyeols","tyeolt","tyeolp","tyeolh","tyeom","tyeob","tyeobs","tyeos","tyeoss","tyeong","tyeoj","tyeoc","tyeok","tyeot","tyeop","tyeoh","tye","tyeg","tyegg","tyegs","tyen","tyenj","tyenh","tyed","tyel","tyelg","tyelm","tyelb","tyels","tyelt","tyelp","tyelh","tyem","tyeb","tyebs","tyes","tyess","tyeng","tyej","tyec","tyek","tyet","tyep","tyeh","to","tog","togg","togs","ton","tonj","tonh","tod","tol","tolg","tolm","tolb","tols","tolt","tolp","tolh","tom","tob","tobs","tos","toss","tong","toj","toc","tok","tot","top","toh","twa","twag","twagg","twags","twan","twanj","twanh","twad","twal","twalg","twalm","twalb","twals","twalt","twalp","twalh","twam","twab","twabs","twas","twass","twang","twaj","twac","twak","twat","twap","twah","twae","twaeg","twaegg","twaegs","twaen","twaenj","twaenh","twaed","twael","twaelg","twaelm","twaelb","twaels","twaelt","twaelp","twaelh","twaem","twaeb","twaebs","twaes","twaess","twaeng","twaej","twaec","twaek","twaet","twaep","twaeh","toe","toeg","toegg","toegs","toen","toenj","toenh","toed","toel","toelg","toelm","toelb"]});var uq=v((t0e,lq)=>{lq.exports=["toels","toelt","toelp","toelh","toem","toeb","toebs","toes","toess","toeng","toej","toec","toek","toet","toep","toeh","tyo","tyog","tyogg","tyogs","tyon","tyonj","tyonh","tyod","tyol","tyolg","tyolm","tyolb","tyols","tyolt","tyolp","tyolh","tyom","tyob","tyobs","tyos","tyoss","tyong","tyoj","tyoc","tyok","tyot","tyop","tyoh","tu","tug","tugg","tugs","tun","tunj","tunh","tud","tul","tulg","tulm","tulb","tuls","tult","tulp","tulh","tum","tub","tubs","tus","tuss","tung","tuj","tuc","tuk","tut","tup","tuh","tweo","tweog","tweogg","tweogs","tweon","tweonj","tweonh","tweod","tweol","tweolg","tweolm","tweolb","tweols","tweolt","tweolp","tweolh","tweom","tweob","tweobs","tweos","tweoss","tweong","tweoj","tweoc","tweok","tweot","tweop","tweoh","twe","tweg","twegg","twegs","twen","twenj","twenh","twed","twel","twelg","twelm","twelb","twels","twelt","twelp","twelh","twem","tweb","twebs","twes","twess","tweng","twej","twec","twek","twet","twep","tweh","twi","twig","twigg","twigs","twin","twinj","twinh","twid","twil","twilg","twilm","twilb","twils","twilt","twilp","twilh","twim","twib","twibs","twis","twiss","twing","twij","twic","twik","twit","twip","twih","tyu","tyug","tyugg","tyugs","tyun","tyunj","tyunh","tyud","tyul","tyulg","tyulm","tyulb","tyuls","tyult","tyulp","tyulh","tyum","tyub","tyubs","tyus","tyuss","tyung","tyuj","tyuc","tyuk","tyut","tyup","tyuh","teu","teug","teugg","teugs","teun","teunj","teunh","teud","teul","teulg","teulm","teulb","teuls","teult","teulp","teulh","teum","teub","teubs","teus","teuss","teung","teuj","teuc","teuk","teut","teup","teuh","tyi","tyig","tyigg","tyigs","tyin","tyinj","tyinh","tyid","tyil","tyilg","tyilm","tyilb","tyils","tyilt","tyilp","tyilh","tyim","tyib","tyibs","tyis","tyiss","tying","tyij","tyic","tyik","tyit","tyip","tyih","ti","tig","tigg","tigs","tin","tinj","tinh","tid","til","tilg","tilm","tilb","tils","tilt","tilp","tilh"]});var dq=v((i0e,cq)=>{cq.exports=["tim","tib","tibs","tis","tiss","ting","tij","tic","tik","tit","tip","tih","pa","pag","pagg","pags","pan","panj","panh","pad","pal","palg","palm","palb","pals","palt","palp","palh","pam","pab","pabs","pas","pass","pang","paj","pac","pak","pat","pap","pah","pae","paeg","paegg","paegs","paen","paenj","paenh","paed","pael","paelg","paelm","paelb","paels","paelt","paelp","paelh","paem","paeb","paebs","paes","paess","paeng","paej","paec","paek","paet","paep","paeh","pya","pyag","pyagg","pyags","pyan","pyanj","pyanh","pyad","pyal","pyalg","pyalm","pyalb","pyals","pyalt","pyalp","pyalh","pyam","pyab","pyabs","pyas","pyass","pyang","pyaj","pyac","pyak","pyat","pyap","pyah","pyae","pyaeg","pyaegg","pyaegs","pyaen","pyaenj","pyaenh","pyaed","pyael","pyaelg","pyaelm","pyaelb","pyaels","pyaelt","pyaelp","pyaelh","pyaem","pyaeb","pyaebs","pyaes","pyaess","pyaeng","pyaej","pyaec","pyaek","pyaet","pyaep","pyaeh","peo","peog","peogg","peogs","peon","peonj","peonh","peod","peol","peolg","peolm","peolb","peols","peolt","peolp","peolh","peom","peob","peobs","peos","peoss","peong","peoj","peoc","peok","peot","peop","peoh","pe","peg","pegg","pegs","pen","penj","penh","ped","pel","pelg","pelm","pelb","pels","pelt","pelp","pelh","pem","peb","pebs","pes","pess","peng","pej","pec","pek","pet","pep","peh","pyeo","pyeog","pyeogg","pyeogs","pyeon","pyeonj","pyeonh","pyeod","pyeol","pyeolg","pyeolm","pyeolb","pyeols","pyeolt","pyeolp","pyeolh","pyeom","pyeob","pyeobs","pyeos","pyeoss","pyeong","pyeoj","pyeoc","pyeok","pyeot","pyeop","pyeoh","pye","pyeg","pyegg","pyegs","pyen","pyenj","pyenh","pyed","pyel","pyelg","pyelm","pyelb","pyels","pyelt","pyelp","pyelh","pyem","pyeb","pyebs","pyes","pyess","pyeng","pyej","pyec","pyek","pyet","pyep","pyeh","po","pog","pogg","pogs","pon","ponj","ponh","pod","pol","polg","polm","polb","pols","polt","polp","polh","pom","pob","pobs","pos"]});var gq=v((n0e,hq)=>{hq.exports=["poss","pong","poj","poc","pok","pot","pop","poh","pwa","pwag","pwagg","pwags","pwan","pwanj","pwanh","pwad","pwal","pwalg","pwalm","pwalb","pwals","pwalt","pwalp","pwalh","pwam","pwab","pwabs","pwas","pwass","pwang","pwaj","pwac","pwak","pwat","pwap","pwah","pwae","pwaeg","pwaegg","pwaegs","pwaen","pwaenj","pwaenh","pwaed","pwael","pwaelg","pwaelm","pwaelb","pwaels","pwaelt","pwaelp","pwaelh","pwaem","pwaeb","pwaebs","pwaes","pwaess","pwaeng","pwaej","pwaec","pwaek","pwaet","pwaep","pwaeh","poe","poeg","poegg","poegs","poen","poenj","poenh","poed","poel","poelg","poelm","poelb","poels","poelt","poelp","poelh","poem","poeb","poebs","poes","poess","poeng","poej","poec","poek","poet","poep","poeh","pyo","pyog","pyogg","pyogs","pyon","pyonj","pyonh","pyod","pyol","pyolg","pyolm","pyolb","pyols","pyolt","pyolp","pyolh","pyom","pyob","pyobs","pyos","pyoss","pyong","pyoj","pyoc","pyok","pyot","pyop","pyoh","pu","pug","pugg","pugs","pun","punj","punh","pud","pul","pulg","pulm","pulb","puls","pult","pulp","pulh","pum","pub","pubs","pus","puss","pung","puj","puc","puk","put","pup","puh","pweo","pweog","pweogg","pweogs","pweon","pweonj","pweonh","pweod","pweol","pweolg","pweolm","pweolb","pweols","pweolt","pweolp","pweolh","pweom","pweob","pweobs","pweos","pweoss","pweong","pweoj","pweoc","pweok","pweot","pweop","pweoh","pwe","pweg","pwegg","pwegs","pwen","pwenj","pwenh","pwed","pwel","pwelg","pwelm","pwelb","pwels","pwelt","pwelp","pwelh","pwem","pweb","pwebs","pwes","pwess","pweng","pwej","pwec","pwek","pwet","pwep","pweh","pwi","pwig","pwigg","pwigs","pwin","pwinj","pwinh","pwid","pwil","pwilg","pwilm","pwilb","pwils","pwilt","pwilp","pwilh","pwim","pwib","pwibs","pwis","pwiss","pwing","pwij","pwic","pwik","pwit","pwip","pwih","pyu","pyug","pyugg","pyugs","pyun","pyunj","pyunh","pyud","pyul","pyulg","pyulm","pyulb","pyuls","pyult","pyulp","pyulh","pyum","pyub","pyubs","pyus","pyuss","pyung","pyuj","pyuc"]});var fq=v((r0e,pq)=>{pq.exports=["pyuk","pyut","pyup","pyuh","peu","peug","peugg","peugs","peun","peunj","peunh","peud","peul","peulg","peulm","peulb","peuls","peult","peulp","peulh","peum","peub","peubs","peus","peuss","peung","peuj","peuc","peuk","peut","peup","peuh","pyi","pyig","pyigg","pyigs","pyin","pyinj","pyinh","pyid","pyil","pyilg","pyilm","pyilb","pyils","pyilt","pyilp","pyilh","pyim","pyib","pyibs","pyis","pyiss","pying","pyij","pyic","pyik","pyit","pyip","pyih","pi","pig","pigg","pigs","pin","pinj","pinh","pid","pil","pilg","pilm","pilb","pils","pilt","pilp","pilh","pim","pib","pibs","pis","piss","ping","pij","pic","pik","pit","pip","pih","ha","hag","hagg","hags","han","hanj","hanh","had","hal","halg","halm","halb","hals","halt","halp","halh","ham","hab","habs","has","hass","hang","haj","hac","hak","hat","hap","hah","hae","haeg","haegg","haegs","haen","haenj","haenh","haed","hael","haelg","haelm","haelb","haels","haelt","haelp","haelh","haem","haeb","haebs","haes","haess","haeng","haej","haec","haek","haet","haep","haeh","hya","hyag","hyagg","hyags","hyan","hyanj","hyanh","hyad","hyal","hyalg","hyalm","hyalb","hyals","hyalt","hyalp","hyalh","hyam","hyab","hyabs","hyas","hyass","hyang","hyaj","hyac","hyak","hyat","hyap","hyah","hyae","hyaeg","hyaegg","hyaegs","hyaen","hyaenj","hyaenh","hyaed","hyael","hyaelg","hyaelm","hyaelb","hyaels","hyaelt","hyaelp","hyaelh","hyaem","hyaeb","hyaebs","hyaes","hyaess","hyaeng","hyaej","hyaec","hyaek","hyaet","hyaep","hyaeh","heo","heog","heogg","heogs","heon","heonj","heonh","heod","heol","heolg","heolm","heolb","heols","heolt","heolp","heolh","heom","heob","heobs","heos","heoss","heong","heoj","heoc","heok","heot","heop","heoh","he","heg","hegg","hegs","hen","henj","henh","hed","hel","helg","helm","helb","hels","helt","help","helh","hem","heb","hebs","hes","hess","heng","hej","hec","hek","het","hep","heh"]});var bq=v((o0e,mq)=>{mq.exports=["hyeo","hyeog","hyeogg","hyeogs","hyeon","hyeonj","hyeonh","hyeod","hyeol","hyeolg","hyeolm","hyeolb","hyeols","hyeolt","hyeolp","hyeolh","hyeom","hyeob","hyeobs","hyeos","hyeoss","hyeong","hyeoj","hyeoc","hyeok","hyeot","hyeop","hyeoh","hye","hyeg","hyegg","hyegs","hyen","hyenj","hyenh","hyed","hyel","hyelg","hyelm","hyelb","hyels","hyelt","hyelp","hyelh","hyem","hyeb","hyebs","hyes","hyess","hyeng","hyej","hyec","hyek","hyet","hyep","hyeh","ho","hog","hogg","hogs","hon","honj","honh","hod","hol","holg","holm","holb","hols","holt","holp","holh","hom","hob","hobs","hos","hoss","hong","hoj","hoc","hok","hot","hop","hoh","hwa","hwag","hwagg","hwags","hwan","hwanj","hwanh","hwad","hwal","hwalg","hwalm","hwalb","hwals","hwalt","hwalp","hwalh","hwam","hwab","hwabs","hwas","hwass","hwang","hwaj","hwac","hwak","hwat","hwap","hwah","hwae","hwaeg","hwaegg","hwaegs","hwaen","hwaenj","hwaenh","hwaed","hwael","hwaelg","hwaelm","hwaelb","hwaels","hwaelt","hwaelp","hwaelh","hwaem","hwaeb","hwaebs","hwaes","hwaess","hwaeng","hwaej","hwaec","hwaek","hwaet","hwaep","hwaeh","hoe","hoeg","hoegg","hoegs","hoen","hoenj","hoenh","hoed","hoel","hoelg","hoelm","hoelb","hoels","hoelt","hoelp","hoelh","hoem","hoeb","hoebs","hoes","hoess","hoeng","hoej","hoec","hoek","hoet","hoep","hoeh","hyo","hyog","hyogg","hyogs","hyon","hyonj","hyonh","hyod","hyol","hyolg","hyolm","hyolb","hyols","hyolt","hyolp","hyolh","hyom","hyob","hyobs","hyos","hyoss","hyong","hyoj","hyoc","hyok","hyot","hyop","hyoh","hu","hug","hugg","hugs","hun","hunj","hunh","hud","hul","hulg","hulm","hulb","huls","hult","hulp","hulh","hum","hub","hubs","hus","huss","hung","huj","huc","huk","hut","hup","huh","hweo","hweog","hweogg","hweogs","hweon","hweonj","hweonh","hweod","hweol","hweolg","hweolm","hweolb","hweols","hweolt","hweolp","hweolh","hweom","hweob","hweobs","hweos","hweoss","hweong","hweoj","hweoc","hweok","hweot","hweop","hweoh","hwe","hweg","hwegg","hwegs"]});var vq=v((s0e,yq)=>{yq.exports=["hwen","hwenj","hwenh","hwed","hwel","hwelg","hwelm","hwelb","hwels","hwelt","hwelp","hwelh","hwem","hweb","hwebs","hwes","hwess","hweng","hwej","hwec","hwek","hwet","hwep","hweh","hwi","hwig","hwigg","hwigs","hwin","hwinj","hwinh","hwid","hwil","hwilg","hwilm","hwilb","hwils","hwilt","hwilp","hwilh","hwim","hwib","hwibs","hwis","hwiss","hwing","hwij","hwic","hwik","hwit","hwip","hwih","hyu","hyug","hyugg","hyugs","hyun","hyunj","hyunh","hyud","hyul","hyulg","hyulm","hyulb","hyuls","hyult","hyulp","hyulh","hyum","hyub","hyubs","hyus","hyuss","hyung","hyuj","hyuc","hyuk","hyut","hyup","hyuh","heu","heug","heugg","heugs","heun","heunj","heunh","heud","heul","heulg","heulm","heulb","heuls","heult","heulp","heulh","heum","heub","heubs","heus","heuss","heung","heuj","heuc","heuk","heut","heup","heuh","hyi","hyig","hyigg","hyigs","hyin","hyinj","hyinh","hyid","hyil","hyilg","hyilm","hyilb","hyils","hyilt","hyilp","hyilh","hyim","hyib","hyibs","hyis","hyiss","hying","hyij","hyic","hyik","hyit","hyip","hyih","hi","hig","higg","higs","hin","hinj","hinh","hid","hil","hilg","hilm","hilb","hils","hilt","hilp","hilh","him","hib","hibs","his","hiss","hing","hij","hic","hik","hit","hip","hih","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var xq=v((a0e,wq)=>{wq.exports=["Kay ","Kayng ","Ke ","Ko ","Kol ","Koc ","Kwi ","Kwi ","Kyun ","Kul ","Kum ","Na ","Na ","Na ","La ","Na ","Na ","Na ","Na ","Na ","Nak ","Nak ","Nak ","Nak ","Nak ","Nak ","Nak ","Nan ","Nan ","Nan ","Nan ","Nan ","Nan ","Nam ","Nam ","Nam ","Nam ","Nap ","Nap ","Nap ","Nang ","Nang ","Nang ","Nang ","Nang ","Nay ","Nayng ","No ","No ","No ","No ","No ","No ","No ","No ","No ","No ","No ","No ","Nok ","Nok ","Nok ","Nok ","Nok ","Nok ","Non ","Nong ","Nong ","Nong ","Nong ","Noy ","Noy ","Noy ","Noy ","Nwu ","Nwu ","Nwu ","Nwu ","Nwu ","Nwu ","Nwu ","Nwu ","Nuk ","Nuk ","Num ","Nung ","Nung ","Nung ","Nung ","Nung ","Twu ","La ","Lak ","Lak ","Lan ","Lyeng ","Lo ","Lyul ","Li ","Pey ","Pen ","Pyen ","Pwu ","Pwul ","Pi ","Sak ","Sak ","Sam ","Sayk ","Sayng ","Sep ","Sey ","Sway ","Sin ","Sim ","Sip ","Ya ","Yak ","Yak ","Yang ","Yang ","Yang ","Yang ","Yang ","Yang ","Yang ","Yang ","Ye ","Ye ","Ye ","Ye ","Ye ","Ye ","Ye ","Ye ","Ye ","Ye ","Ye ","Yek ","Yek ","Yek ","Yek ","Yen ","Yen ","Yen ","Yen ","Yen ","Yen ","Yen ","Yen ","Yen ","Yen ","Yen ","Yen ","Yen ","Yen ","Yel ","Yel ","Yel ","Yel ","Yel ","Yel ","Yem ","Yem ","Yem ","Yem ","Yem ","Yep ","Yeng ","Yeng ","Yeng ","Yeng ","Yeng ","Yeng ","Yeng ","Yeng ","Yeng ","Yeng ","Yeng ","Yeng ","Yeng ","Yey ","Yey ","Yey ","Yey ","O ","Yo ","Yo ","Yo ","Yo ","Yo ","Yo ","Yo ","Yo ","Yo ","Yo ","Yong ","Wun ","Wen ","Yu ","Yu ","Yu ","Yu ","Yu ","Yu ","Yu ","Yu ","Yu ","Yu ","Yuk ","Yuk ","Yuk ","Yun ","Yun ","Yun ","Yun ","Yul ","Yul ","Yul ","Yul ","Yung ","I ","I ","I ","I ","I ","I ","I ","I ","I ","I ","I ","I ","I ","I ","Ik ","Ik ","In ","In ","In ","In ","In ","In ","In ","Im ","Im ","Im ","Ip ","Ip ","Ip ","Cang ","Cek ","Ci ","Cip ","Cha ","Chek "]});var Sq=v((l0e,Cq)=>{Cq.exports=["Chey ","Thak ","Thak ","Thang ","Thayk ","Thong ","Pho ","Phok ","Hang ","Hang ","Hyen ","Hwak ","Wu ","Huo ","[?] ","[?] ","Zhong ","[?] ","Qing ","[?] ","[?] ","Xi ","Zhu ","Yi ","Li ","Shen ","Xiang ","Fu ","Jing ","Jing ","Yu ","[?] ","Hagi ","[?] ","Zhu ","[?] ","[?] ","Yi ","Du ","[?] ","[?] ","[?] ","Fan ","Si ","Guan ","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]"]});var Tq=v((u0e,Dq)=>{Dq.exports=["ff","fi","fl","ffi","ffl","st","st","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","mn","me","mi","vn","mkh","[?]","[?]","[?]","[?]","[?]","yi","","ay","`","","d","h","k","l","m","m","t","+","sh","s","sh","s","a","a","","b","g","d","h","v","z","[?]","t","y","k","k","l","[?]","l","[?]","n","n","[?]","p","p","[?]","ts","ts","r","sh","t","vo","b","k","p","l","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]});var Pq=v((c0e,kq)=>{kq.exports=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]});var _q=v((d0e,Rq)=>{Rq.exports=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","[?]","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","","","","","","","","","","","","","[?]","[?]","[?]"]});var Iq=v((h0e,Eq)=>{Eq.exports=["[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","","","","~","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","..","--","-","_","_","(",") ","{","} ","[","] ","[(",")] ","<<",">> ","<","> ","[","] ","{","}","[?]","[?]","[?]","[?]","","","","","","","",",",",",".","",";",":","?","!","-","(",")","{","}","{","}","#","&","*","+","-","<",">","=","","\\","$","%","@","[?]","[?]","[?]","[?]","","","","[?]","","[?]","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","[?]","[?]",""]});var Fq=v((g0e,Lq)=>{Lq.exports=["[?]","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","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","[","\\","]","^","_","`","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","{","|","}","~","[?]","[?]",".","[","]",",","*","wo","a","i","u","e","o","ya","yu","yo","tu","+","a","i","u","e","o","ka","ki","ku","ke","ko","sa","si","su","se","so","ta","ti","tu","te","to","na","ni","nu","ne","no","ha","hi","hu","he","ho","ma","mi","mu","me","mo","ya","yu","yo","ra","ri","ru","re","ro","wa","n",":",";","","g","gg","gs","n","nj","nh","d","dd","r","lg","lm","lb","ls","lt","lp","rh","m","b","bb","bs","s","ss","","j","jj","c","k","t","p","h","[?]","[?]","[?]","a","ae","ya","yae","eo","e","[?]","[?]","yeo","ye","o","wa","wae","oe","[?]","[?]","yo","u","weo","we","wi","yu","[?]","[?]","eu","yi","i","[?]","[?]","[?]","/C","PS","!","-","|","Y=","W=","[?]","|","-","|","-","|","#","O","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","[?]","{","|","}","","","",""]});var jq=v((p0e,Mq)=>{"use strict";var L={},Ate=/(?![\x00-\x7F]|[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3})./g;Mq.exports=function(n){return n.replace(Ate,Nte)};function Nte(n){var e=Bte(n);if(e>65535)return"_";var t=e>>8,i=e&255;if(t>24&&t<30||t>215&&t<249)return"";if(!L[t])switch(Hte(t)){case"00":L[t]=VM();break;case"01":L[t]=tj();break;case"02":L[t]=nj();break;case"03":L[t]=oj();break;case"04":L[t]=aj();break;case"05":L[t]=uj();break;case"06":L[t]=dj();break;case"07":L[t]=gj();break;case"09":L[t]=fj();break;case"0a":L[t]=bj();break;case"0b":L[t]=vj();break;case"0c":L[t]=xj();break;case"0d":L[t]=Sj();break;case"0e":L[t]=Tj();break;case"0f":L[t]=Pj();break;case"10":L[t]=_j();break;case"11":L[t]=Ij();break;case"12":L[t]=Fj();break;case"13":L[t]=jj();break;case"14":L[t]=Aj();break;case"15":L[t]=Hj();break;case"16":L[t]=qj();break;case"17":L[t]=Yj();break;case"18":L[t]=Jj();break;case"1e":L[t]=$j();break;case"1f":L[t]=Gj();break;case"20":L[t]=Kj();break;case"21":L[t]=Vj();break;case"22":L[t]=tO();break;case"23":L[t]=nO();break;case"24":L[t]=oO();break;case"25":L[t]=aO();break;case"26":L[t]=uO();break;case"27":L[t]=dO();break;case"28":L[t]=gO();break;case"2e":L[t]=fO();break;case"2f":L[t]=bO();break;case"30":L[t]=vO();break;case"31":L[t]=xO();break;case"32":L[t]=SO();break;case"33":L[t]=TO();break;case"4d":L[t]=PO();break;case"4e":L[t]=_O();break;case"4f":L[t]=IO();break;case"50":L[t]=FO();break;case"51":L[t]=jO();break;case"52":L[t]=AO();break;case"53":L[t]=HO();break;case"54":L[t]=qO();break;case"55":L[t]=YO();break;case"56":L[t]=JO();break;case"57":L[t]=$O();break;case"58":L[t]=GO();break;case"59":L[t]=KO();break;case"5a":L[t]=VO();break;case"5b":L[t]=tA();break;case"5c":L[t]=nA();break;case"5d":L[t]=oA();break;case"5e":L[t]=aA();break;case"5f":L[t]=uA();break;case"60":L[t]=dA();break;case"61":L[t]=gA();break;case"62":L[t]=fA();break;case"63":L[t]=bA();break;case"64":L[t]=vA();break;case"65":L[t]=xA();break;case"66":L[t]=SA();break;case"67":L[t]=TA();break;case"68":L[t]=PA();break;case"69":L[t]=_A();break;case"6a":L[t]=IA();break;case"6b":L[t]=FA();break;case"6c":L[t]=jA();break;case"6d":L[t]=AA();break;case"6e":L[t]=HA();break;case"6f":L[t]=qA();break;case"70":L[t]=YA();break;case"71":L[t]=JA();break;case"72":L[t]=$A();break;case"73":L[t]=GA();break;case"74":L[t]=KA();break;case"75":L[t]=VA();break;case"76":L[t]=tN();break;case"77":L[t]=nN();break;case"78":L[t]=oN();break;case"79":L[t]=aN();break;case"7a":L[t]=uN();break;case"7b":L[t]=dN();break;case"7c":L[t]=gN();break;case"7d":L[t]=fN();break;case"7e":L[t]=bN();break;case"7f":L[t]=vN();break;case"80":L[t]=xN();break;case"81":L[t]=SN();break;case"82":L[t]=TN();break;case"83":L[t]=PN();break;case"84":L[t]=_N();break;case"85":L[t]=IN();break;case"86":L[t]=FN();break;case"87":L[t]=jN();break;case"88":L[t]=AN();break;case"89":L[t]=HN();break;case"8a":L[t]=qN();break;case"8b":L[t]=YN();break;case"8c":L[t]=JN();break;case"8d":L[t]=$N();break;case"8e":L[t]=GN();break;case"8f":L[t]=KN();break;case"90":L[t]=VN();break;case"91":L[t]=tH();break;case"92":L[t]=nH();break;case"93":L[t]=oH();break;case"94":L[t]=aH();break;case"95":L[t]=uH();break;case"96":L[t]=dH();break;case"97":L[t]=gH();break;case"98":L[t]=fH();break;case"99":L[t]=bH();break;case"9a":L[t]=vH();break;case"9b":L[t]=xH();break;case"9c":L[t]=SH();break;case"9d":L[t]=TH();break;case"9e":L[t]=PH();break;case"9f":L[t]=_H();break;case"a0":L[t]=IH();break;case"a1":L[t]=FH();break;case"a2":L[t]=jH();break;case"a3":L[t]=AH();break;case"a4":L[t]=HH();break;case"ac":L[t]=qH();break;case"ad":L[t]=YH();break;case"ae":L[t]=JH();break;case"af":L[t]=$H();break;case"b0":L[t]=GH();break;case"b1":L[t]=KH();break;case"b2":L[t]=VH();break;case"b3":L[t]=tB();break;case"b4":L[t]=nB();break;case"b5":L[t]=oB();break;case"b6":L[t]=aB();break;case"b7":L[t]=uB();break;case"b8":L[t]=dB();break;case"b9":L[t]=gB();break;case"ba":L[t]=fB();break;case"bb":L[t]=bB();break;case"bc":L[t]=vB();break;case"bd":L[t]=xB();break;case"be":L[t]=SB();break;case"bf":L[t]=TB();break;case"c0":L[t]=PB();break;case"c1":L[t]=_B();break;case"c2":L[t]=IB();break;case"c3":L[t]=FB();break;case"c4":L[t]=jB();break;case"c5":L[t]=AB();break;case"c6":L[t]=HB();break;case"c7":L[t]=qB();break;case"c8":L[t]=YB();break;case"c9":L[t]=JB();break;case"ca":L[t]=$B();break;case"cb":L[t]=GB();break;case"cc":L[t]=KB();break;case"cd":L[t]=VB();break;case"ce":L[t]=tq();break;case"cf":L[t]=nq();break;case"d0":L[t]=oq();break;case"d1":L[t]=aq();break;case"d2":L[t]=uq();break;case"d3":L[t]=dq();break;case"d4":L[t]=gq();break;case"d5":L[t]=fq();break;case"d6":L[t]=bq();break;case"d7":L[t]=vq();break;case"f9":L[t]=xq();break;case"fa":L[t]=Sq();break;case"fb":L[t]=Tq();break;case"fc":L[t]=Pq();break;case"fd":L[t]=_q();break;case"fe":L[t]=Iq();break;case"ff":L[t]=Fq();break;default:return""}return L[t][i]}function Hte(n){return(n+256).toString(16).substr(-2)}function Bte(n){for(var e,t,i,r,o,s,a;Array.isArray(n);)n=n[0];switch(n.length){case 1:return bo(n);case 2:return e=bo(n.substr(0,1)),t=bo(n.substr(1,1)),o=(e&3)<<6|t&63,s=(e&28)>>2,s<<8|o;case 3:return e=bo(n.substr(0,1)),t=bo(n.substr(1,1)),i=bo(n.substr(2,1)),o=(t&3)<<6|i&63,s=(e&15)<<4|(t&60)>>2,s<<8|o;default:return e=bo(n.substr(0,1)),t=bo(n.substr(1,1)),i=bo(n.substr(2,1)),r=bo(n.substr(3,1)),o=(i&3)<<6|r&63,s=(t&15)<<4|(i&60)>>2,a=(e&7)<<5|(t&48)>>4,a<<16|s<<8|o}}function bo(n){var e=n+"",t=e.charCodeAt(0);if(55296<=t&&t<=56319){var i=t;if(e.length===1)return t;var r=e.charCodeAt(1);return(i-55296)*1024+(r-56320)+65536}return 56320<=t&&t<=57343,t}});var st,F,R,Et,Vb,Yi,mt,yo,fn,ey,si,vo,ur,O0,Oq,ty,bi,al,ce=D(()=>{"use strict";st=require("util"),F=require("fs"),R=require("path"),Et=require("os"),Vb=require("crypto"),Yi=RI(),mt=OS(),yo=require("readline"),fn=require("child_process"),ey=n0(),si=TL(),vo=ZL(),ur=BM(),O0=require("vm"),Oq=require("net"),ty=Kb(),bi=KM(),al=jq()});function Hq(n){switch(n.toLowerCase()){case"trace":return 0;case"debug":return 1;case"info":return 2;case"error":return 4;case"warn":case"warning":return 3;case"off":return 5;default:return 2}}function Aq(n,e=2,t=!1,i=!1){let r="";for(let o=0;o0?" ":"")+s}return r}function Nq(n){switch(n){case 1:return"DEBUG";case 4:return"ERROR";case 2:return"INFO";case 0:return"TRACE";case 3:return"WARN"}return""}function gh(n){return`${hh(n.getHours())}:${hh(n.getMinutes())}:${hh(n.getSeconds())}.${Jte(n.getMilliseconds())}`}var qte,Wte,Yte,Zte,hh,Jte,A0,iy,N0=D(()=>{"use strict";ce();qte=5*1024*1024,Wte="\x1B[33m",Yte="\x1B[39m",Zte=2,hh=n=>n<10?`0${n}`:n.toString(),Jte=n=>n<10?`00${n}`:n<100?`0${n}`:n.toString();A0=class{constructor(){this.level=Zte}setLevel(e){this.level!==e&&(this.level=e)}getLevel(){return this.level}},iy=class extends A0{constructor(t,i,r){super();this.fsPath=t;this.backupIndex=1;this.useConsole=!1;this.loggers=new Map;this.config=Object.assign({userFormatters:!0,color:!1,depth:2,showHidden:!1},r),this.setLevel(i),this.promise=this.initialize()}switchConsole(){this.useConsole=!this.useConsole}format(t){let{color:i,showHidden:r,depth:o}=this.config;return Aq(t,o,i,r)}createLogger(t){let i=this.loggers.has(t)?this.loggers.get(t):{category:t,mark:()=>{},getLevel:()=>this.getLevel(),trace:(...r)=>{this.level<=0&&this._log(0,t,r,this.getCurrentTimestamp())},debug:(...r)=>{this.level<=1&&this._log(1,t,r,this.getCurrentTimestamp())},log:(...r)=>{this.level<=2&&this._log(2,t,r,this.getCurrentTimestamp())},info:(...r)=>{this.level<=2&&this._log(2,t,r,this.getCurrentTimestamp())},warn:(...r)=>{this.level<=3&&this._log(3,t,r,this.getCurrentTimestamp())},error:(...r)=>{this.level<=4&&this._log(4,t,r,this.getCurrentTimestamp())},fatal:(...r)=>{this.level<=4&&this._log(4,t,r,this.getCurrentTimestamp())},flush:()=>this.promise};return this.loggers.set(t,i),i}async initialize(){return Promise.resolve()}shouldBackup(t){return t>qte}_log(t,i,r,o){if(this.useConsole)console[t===4?"error":"log"](`${Nq(t)} [${i}]`,Aq(r,null,!0));else{let s=this.format(r);this.promise=this.promise.then(()=>(async()=>{let l;this.config.userFormatters!==!1?l=`${[o,Nq(t),`(pid:${process.pid})`,`[${i}]`].join(" ")} - ${s} +`:l=s,await(0,st.promisify)(F.appendFile)(this.fsPath,l,{encoding:"utf8",flag:"a+"});let u=await(0,st.promisify)(F.stat)(this.fsPath);if(this.shouldBackup(u.size)){let c=this.getBackupResource();await(0,st.promisify)(F.rename)(this.fsPath,c)}})()).catch(a=>{!global.REVISION&&console.error(a)})}}getCurrentTimestamp(){let t=new Date;return`${t.getFullYear()}-${hh(t.getMonth()+1)}-${hh(t.getDate())}T${gh(t)}`}getBackupResource(){return this.backupIndex=this.backupIndex>5?1:this.backupIndex,R.join(R.dirname(this.fsPath),`${R.basename(this.fsPath)}_${this.backupIndex++}`)}}});function ge(n,e){return n}function ye(n,e){return n??e}function Zi(n){return n<=0?Promise.resolve(void 0):new Promise(e=>{setTimeout(()=>{e(void 0)},n).unref()})}function ny(n,e){return new Promise(t=>{let i=e.onCancellationRequested(()=>{clearTimeout(r),t(!0)}),r=setTimeout(()=>{i.dispose(),t(!1)},n);r.unref()})}function Bq(){return new Promise(n=>{process.nextTick(()=>{n(void 0)})})}function cr(){return new Promise(n=>{setImmediate(()=>{n(void 0)})})}function ry(n,e){let t,i=r=>{t&&clearTimeout(t),t=setTimeout(()=>{n()},r??e),t.unref()};return Object.defineProperty(i,"clear",{get:()=>()=>{clearTimeout(t)}}),i}function fh(n,e,t=3){if(n.length==0)return Promise.resolve();let i=0,r=n.length,o=n.slice();return new Promise(s=>{let a=l=>{let u=()=>{if(i=i+1,i==r)s();else if(o.length){let c=o.shift();a(c)}};e(l).then(u,u)};for(let l=0;l{"use strict";ph=new Map([["<",">"],[">","<"],["{","}"],["[","]"],["(",")"]])});var B0={};qs(B0,{createLogger:()=>J,emptyFile:()=>Wq,getLoggerFile:()=>oy,getTimestamp:()=>gh,logger:()=>Yq,resolveLogFilepath:()=>qq});function qq(){let n=process.env.NVIM_COC_LOG_FILE;if(n)return n;let e=process.env.XDG_RUNTIME_DIR;if(e)try{return F.accessSync(e,F.constants.R_OK|F.constants.W_OK),R.join(e,`coc-nvim-${process.pid}.log`)}catch{}let t=Et.tmpdir();return e=R.join(t,`coc.nvim-${process.pid}`),F.mkdirSync(e,{recursive:!0}),R.join(e,"coc-nvim.log")}function Wq(n){if(F.existsSync(n))try{F.writeFileSync(n,"",{encoding:"utf8",mode:438})}catch{}}function oy(){return H0}function J(n="coc.nvim"){return Yq.createLogger(n)}var H0,Ute,Yq,Ce=D(()=>{"use strict";N0();ce();ee();N0();H0=qq();Wq(H0);Ute=ge(process.env.NVIM_COC_LOG_LEVEL||"info","off"),Yq=new iy(H0,Hq(Ute),{color:!global.REVISION&&process.platform!=="win32",userFormatters:!0})});var Jq=v((W0,Zq)=>{Zq.exports=q0(typeof Buffer<"u"&&Buffer)||q0(W0.Buffer)||q0(typeof window<"u"&&window.Buffer)||W0.Buffer;function q0(n){return n&&n.isBuffer&&n}});var Xq=v((Wu,$q)=>{var qu=$n(),Wu=$q.exports=Uq(0);Wu.alloc=Uq;Wu.concat=qu.concat;Wu.from=$te;function Uq(n){return new Array(n)}function $te(n){if(!qu.isBuffer(n)&&qu.isView(n))n=qu.Uint8Array.from(n);else if(qu.isArrayBuffer(n))n=new Uint8Array(n);else{if(typeof n=="string")return qu.from.call(Wu,n);if(typeof n=="number")throw new TypeError('"value" argument must not be a number')}return Array.prototype.slice.call(n)}});var Kq=v((Zu,zq)=>{var Go=$n(),Yu=Go.global,Zu=zq.exports=Go.hasBuffer?Gq(0):[];Zu.alloc=Go.hasBuffer&&Yu.alloc||Gq;Zu.concat=Go.concat;Zu.from=Xte;function Gq(n){return Yu.alloc(n)}function Xte(n){if(!Go.isBuffer(n)&&Go.isView(n))n=Go.Uint8Array.from(n);else if(Go.isArrayBuffer(n))n=new Uint8Array(n);else{if(typeof n=="string")return Go.from.call(Zu,n);if(typeof n=="number")throw new TypeError('"value" argument must not be a number')}return Yu.from&&Yu.from.length!==1?Yu.from(n):new Yu(n)}});var eW=v((Ju,Vq)=>{var sy=$n(),Ju=Vq.exports=sy.hasArrayBuffer?Qq(0):[];Ju.alloc=Qq;Ju.concat=sy.concat;Ju.from=Gte;function Qq(n){return new Uint8Array(n)}function Gte(n){if(sy.isView(n)){var e=n.byteOffset,t=n.byteLength;n=n.buffer,n.byteLength!==t&&(n.slice?n=n.slice(e,e+t):(n=new Uint8Array(n),n.byteLength!==t&&(n=Array.prototype.slice.call(n,e,e+t))))}else{if(typeof n=="string")return sy.from.call(Ju,n);if(typeof n=="number")throw new TypeError('"value" argument must not be a number')}return new Uint8Array(n)}});var tW=v(ay=>{ay.copy=Qte;ay.toString=Kte;ay.write=zte;function zte(n,e){for(var t=this,i=e||(e|=0),r=n.length,o=0,s=0;s>>6,t[i++]=128|o&63):o<55296||o>57343?(t[i++]=224|o>>>12,t[i++]=128|o>>>6&63,t[i++]=128|o&63):(o=(o-55296<<10|n.charCodeAt(s++)-56320)+65536,t[i++]=240|o>>>18,t[i++]=128|o>>>12&63,t[i++]=128|o>>>6&63,t[i++]=128|o&63);return i-e}function Kte(n,e,t){var i=this,r=e|0;t||(t=i.length);for(var o="",s=0;r=65536?(s-=65536,o+=String.fromCharCode((s>>>10)+55296,(s&1023)+56320)):o+=String.fromCharCode(s)}return o}function Qte(n,e,t,i){var r;t||(t=0),!i&&i!==0&&(i=this.length),e||(e=0);var o=i-t;if(n===this&&t=0;r--)n[r+e]=this[r+t];else for(r=0;r{var Y0=tW();mh.copy=oW;mh.slice=sW;mh.toString=Vte;mh.write=eie("write");var Gs=$n(),iW=Gs.global,nW=Gs.hasBuffer&&"TYPED_ARRAY_SUPPORT"in iW,rW=nW&&!iW.TYPED_ARRAY_SUPPORT;function oW(n,e,t,i){var r=Gs.isBuffer(this),o=Gs.isBuffer(n);if(r&&o)return this.copy(n,e,t,i);if(!rW&&!r&&!o&&Gs.isView(this)&&Gs.isView(n)){var s=t||i!=null?sW.call(this,t,i):this;return n.set(s,e),s.length}else return Y0.copy.call(this,n,e,t,i)}function sW(n,e){var t=this.slice||!rW&&this.subarray;if(t)return t.call(this,n,e);var i=Gs.alloc.call(this,e-n);return oW.call(this,i,0,n,e),i}function Vte(n,e,t){var i=!nW&&Gs.isBuffer(this)?this.toString:Y0.toString;return i.apply(this,arguments)}function eie(n){return e;function e(){var t=this[n]||Y0[n];return t.apply(this,arguments)}}});var $n=v(mn=>{var Z0=mn.global=Jq(),cW=mn.hasBuffer=Z0&&!!Z0.isBuffer,U0=mn.hasArrayBuffer=typeof ArrayBuffer<"u";mn.isArrayBuffer=U0?sie:X0;var tie=mn.isBuffer=cW?Z0.isBuffer:X0,iie=mn.isView=U0?ArrayBuffer.isView||hW("ArrayBuffer","buffer"):X0;mn.alloc=$0;mn.concat=rie;mn.from=nie;var aW=mn.Array=Xq(),lW=mn.Buffer=Kq(),uW=mn.Uint8Array=eW(),J0=mn.prototype=ly();function nie(n){return typeof n=="string"?aie.call(this,n):dW(this).from(n)}function $0(n){return dW(this).alloc(n)}function rie(n,e){e||(e=0,Array.prototype.forEach.call(n,o));var t=this!==mn&&this||n[0],i=$0.call(t,e),r=0;return Array.prototype.forEach.call(n,s),i;function o(a){e+=a.length}function s(a){r+=J0.copy.call(a,i,r)}}var oie=hW("ArrayBuffer");function sie(n){return n instanceof ArrayBuffer||oie(n)}function aie(n){var e=n.length*3,t=$0.call(this,e),i=J0.write.call(t,n);return e!==i&&(t=J0.slice.call(t,0,i)),t}function dW(n){return tie(n)?lW:iie(n)?uW:Array.isArray(n)?aW:cW?lW:U0?uW:aW}function X0(){return!1}function hW(n,e){return n="[object "+n+"]",function(t){return t!=null&&{}.toString.call(e?t[e]:t)===n}}});var uy=v(gW=>{gW.ExtBuffer=G0;var lie=$n();function G0(n,e){if(!(this instanceof G0))return new G0(n,e);this.buffer=lie.from(n),this.type=e}});var fW=v(pW=>{pW.setExtPackers=die;var cy=$n(),uie=cy.global,Yr=cy.Uint8Array.from,z0,cie={name:1,message:1,stack:1,columnNumber:1,fileName:1,lineNumber:1};function die(n){n.addExtPacker(14,Error,[ll,dr]),n.addExtPacker(1,EvalError,[ll,dr]),n.addExtPacker(2,RangeError,[ll,dr]),n.addExtPacker(3,ReferenceError,[ll,dr]),n.addExtPacker(4,SyntaxError,[ll,dr]),n.addExtPacker(5,TypeError,[ll,dr]),n.addExtPacker(6,URIError,[ll,dr]),n.addExtPacker(10,RegExp,[hie,dr]),n.addExtPacker(11,Boolean,[K0,dr]),n.addExtPacker(12,String,[K0,dr]),n.addExtPacker(13,Date,[Number,dr]),n.addExtPacker(15,Number,[K0,dr]),typeof Uint8Array<"u"&&(n.addExtPacker(17,Int8Array,Yr),n.addExtPacker(18,Uint8Array,Yr),n.addExtPacker(19,Int16Array,Yr),n.addExtPacker(20,Uint16Array,Yr),n.addExtPacker(21,Int32Array,Yr),n.addExtPacker(22,Uint32Array,Yr),n.addExtPacker(23,Float32Array,Yr),typeof Float64Array<"u"&&n.addExtPacker(24,Float64Array,Yr),typeof Uint8ClampedArray<"u"&&n.addExtPacker(25,Uint8ClampedArray,Yr),n.addExtPacker(26,ArrayBuffer,Yr),n.addExtPacker(29,DataView,Yr)),cy.hasBuffer&&n.addExtPacker(27,uie,cy.from)}function dr(n){return z0||(z0=Q0().encode),z0(n)}function K0(n){return n.valueOf()}function hie(n){n=RegExp.prototype.toString.call(n).split("/"),n.shift();var e=[n.pop()];return e.unshift(n.join("/")),e}function ll(n){var e={};for(var t in cie)e[t]=n[t];return e}});var dy=v(bh=>{var gie,pie,fie,mie;(function(n){var e="undefined",t=e!==typeof Buffer&&Buffer,i=e!==typeof Uint8Array&&Uint8Array,r=e!==typeof ArrayBuffer&&ArrayBuffer,o=[0,0,0,0,0,0,0,0],s=Array.isArray||T,a=4294967296,l=16777216,u;gie=c("Uint64BE",!0,!0),pie=c("Int64BE",!0,!1),fie=c("Uint64LE",!1,!0),mie=c("Int64LE",!1,!1);function c(O,j,q){var K=j?0:4,X=j?4:0,z=j?0:3,B=j?1:2,fe=j?2:1,ve=j?3:0,Le=j?w:C,U=j?x:P,H=Ee.prototype,Q="is"+O,re="_"+Q;return H.buffer=void 0,H.offset=0,H[re]=!0,H.toNumber=Ei,H.toString=qn,H.toJSON=Ei,H.toArray=d,t&&(H.toBuffer=h),i&&(H.toArrayBuffer=g),Ee[Q]=Qe,n[O]=Ee,Ee;function Ee(lt,et,tt,Ke){return this instanceof Ee?Me(this,lt,et,tt,Ke):new Ee(lt,et,tt,Ke)}function Qe(lt){return!!(lt&<[re])}function Me(lt,et,tt,Ke,Ci){if(i&&r&&(et instanceof r&&(et=new i(et)),Ke instanceof r&&(Ke=new i(Ke))),!et&&!tt&&!Ke&&!u){lt.buffer=y(o,0);return}if(!f(et,tt)){var Nr=u||Array;Ci=tt,Ke=et,tt=0,et=new Nr(8)}lt.buffer=et,lt.offset=tt|=0,e!==typeof Ke&&(typeof Ke=="string"?Dn(et,tt,Ke,Ci||10):f(Ke,Ci)?m(et,tt,Ke,Ci):typeof Ci=="number"?(Ar(et,tt+K,Ke),Ar(et,tt+X,Ci)):Ke>0?Le(et,tt,Ke):Ke<0?U(et,tt,Ke):m(et,tt,o,0))}function Dn(lt,et,tt,Ke){var Ci=0,Nr=tt.length,Tn=0,Yn=0;tt[0]==="-"&&Ci++;for(var $d=Ci;Ci=0))break;Yn=Yn*Ke+Eb,Tn=Tn*Ke+Math.floor(Yn/a),Yn%=a}$d&&(Tn=~Tn,Yn?Yn=a-Yn:Tn++),Ar(lt,et+K,Tn),Ar(lt,et+X,Yn)}function Ei(){var lt=this.buffer,et=this.offset,tt=Wn(lt,et+K),Ke=Wn(lt,et+X);return q||(tt|=0),tt?tt*a+Ke:Ke}function qn(lt){var et=this.buffer,tt=this.offset,Ke=Wn(et,tt+K),Ci=Wn(et,tt+X),Nr="",Tn=!q&&Ke&2147483648;for(Tn&&(Ke=~Ke,Ci=a-Ci),lt=lt||10;;){var Yn=Ke%lt*a+Ci;if(Ke=Math.floor(Ke/lt),Ci=Math.floor(Yn/lt),Nr=(Yn%lt).toString(lt)+Nr,!Ke&&!Ci)break}return Tn&&(Nr="-"+Nr),Nr}function Ar(lt,et,tt){lt[et+ve]=tt&255,tt=tt>>8,lt[et+fe]=tt&255,tt=tt>>8,lt[et+B]=tt&255,tt=tt>>8,lt[et+z]=tt&255}function Wn(lt,et){return lt[et+z]*l+(lt[et+B]<<16)+(lt[et+fe]<<8)+lt[et+ve]}}function d(O){var j=this.buffer,q=this.offset;return u=null,O!==!1&&q===0&&j.length===8&&s(j)?j:y(j,q)}function h(O){var j=this.buffer,q=this.offset;if(u=t,O!==!1&&q===0&&j.length===8&&Buffer.isBuffer(j))return j;var K=new t(8);return m(K,0,j,q),K}function g(O){var j=this.buffer,q=this.offset,K=j.buffer;if(u=i,O!==!1&&q===0&&K instanceof r&&K.byteLength===8)return K;var X=new i(8);return m(X,0,j,q),X.buffer}function f(O,j){var q=O&&O.length;return j|=0,q&&j+8<=q&&typeof O[j]!="string"}function m(O,j,q,K){j|=0,K|=0;for(var X=0;X<8;X++)O[j++]=q[K++]&255}function y(O,j){return Array.prototype.slice.call(O,j,j+8)}function w(O,j,q){for(var K=j+8;K>j;)O[--K]=q&255,q/=256}function x(O,j,q){var K=j+8;for(q++;K>j;)O[--K]=-q&255^255,q/=256}function C(O,j,q){for(var K=j+8;j{V0.read=function(n,e,t,i,r){var o,s,a=r*8-i-1,l=(1<>1,c=-7,d=t?r-1:0,h=t?-1:1,g=n[e+d];for(d+=h,o=g&(1<<-c)-1,g>>=-c,c+=a;c>0;o=o*256+n[e+d],d+=h,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=i;c>0;s=s*256+n[e+d],d+=h,c-=8);if(o===0)o=1-u;else{if(o===l)return s?NaN:(g?-1:1)*(1/0);s=s+Math.pow(2,i),o=o-u}return(g?-1:1)*s*Math.pow(2,o-i)};V0.write=function(n,e,t,i,r,o){var s,a,l,u=o*8-r-1,c=(1<>1,h=r===23?Math.pow(2,-24)-Math.pow(2,-77):0,g=i?0:o-1,f=i?1:-1,m=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-s))<1&&(s--,l*=2),s+d>=1?e+=h/l:e+=h*Math.pow(2,1-d),e*l>=2&&(s++,l/=2),s+d>=c?(a=0,s=c):s+d>=1?(a=(e*l-1)*Math.pow(2,r),s=s+d):(a=e*Math.pow(2,d-1)*Math.pow(2,r),s=0));r>=8;n[t+g]=a&255,g+=f,a/=256,r-=8);for(s=s<0;n[t+g]=s&255,g+=f,s/=256,u-=8);n[t+g-f]|=m*128}});var tD=v(mW=>{var bie=mW.uint8=new Array(256);for(yh=0;yh<=255;yh++)bie[yh]=yie(yh);var yh;function yie(n){return function(e){var t=e.reserve(1);e.buffer[t]=n}}});var PW=v(kW=>{var yW=eD(),vW=dy(),vie=vW.Uint64BE,wie=vW.Int64BE,wW=tD().uint8,hy=$n(),$t=hy.global,xie=hy.hasBuffer&&"TYPED_ARRAY_SUPPORT"in $t,Cie=xie&&!$t.TYPED_ARRAY_SUPPORT,bW=hy.hasBuffer&&$t.prototype||{};kW.getWriteToken=Sie;function Sie(n){return n&&n.uint8array?Die():Cie||hy.hasBuffer&&n&&n.safe?Tie():xW()}function Die(){var n=xW();return n[202]=xt(202,4,DW),n[203]=xt(203,8,TW),n}function xW(){var n=wW.slice();return n[196]=vh(196),n[197]=ul(197),n[198]=cl(198),n[199]=vh(199),n[200]=ul(200),n[201]=cl(201),n[202]=xt(202,4,bW.writeFloatBE||DW,!0),n[203]=xt(203,8,bW.writeDoubleBE||TW,!0),n[204]=vh(204),n[205]=ul(205),n[206]=cl(206),n[207]=xt(207,8,CW),n[208]=vh(208),n[209]=ul(209),n[210]=cl(210),n[211]=xt(211,8,SW),n[217]=vh(217),n[218]=ul(218),n[219]=cl(219),n[220]=ul(220),n[221]=cl(221),n[222]=ul(222),n[223]=cl(223),n}function Tie(){var n=wW.slice();return n[196]=xt(196,1,$t.prototype.writeUInt8),n[197]=xt(197,2,$t.prototype.writeUInt16BE),n[198]=xt(198,4,$t.prototype.writeUInt32BE),n[199]=xt(199,1,$t.prototype.writeUInt8),n[200]=xt(200,2,$t.prototype.writeUInt16BE),n[201]=xt(201,4,$t.prototype.writeUInt32BE),n[202]=xt(202,4,$t.prototype.writeFloatBE),n[203]=xt(203,8,$t.prototype.writeDoubleBE),n[204]=xt(204,1,$t.prototype.writeUInt8),n[205]=xt(205,2,$t.prototype.writeUInt16BE),n[206]=xt(206,4,$t.prototype.writeUInt32BE),n[207]=xt(207,8,CW),n[208]=xt(208,1,$t.prototype.writeInt8),n[209]=xt(209,2,$t.prototype.writeInt16BE),n[210]=xt(210,4,$t.prototype.writeInt32BE),n[211]=xt(211,8,SW),n[217]=xt(217,1,$t.prototype.writeUInt8),n[218]=xt(218,2,$t.prototype.writeUInt16BE),n[219]=xt(219,4,$t.prototype.writeUInt32BE),n[220]=xt(220,2,$t.prototype.writeUInt16BE),n[221]=xt(221,4,$t.prototype.writeUInt32BE),n[222]=xt(222,2,$t.prototype.writeUInt16BE),n[223]=xt(223,4,$t.prototype.writeUInt32BE),n}function vh(n){return function(e,t){var i=e.reserve(2),r=e.buffer;r[i++]=n,r[i]=t}}function ul(n){return function(e,t){var i=e.reserve(3),r=e.buffer;r[i++]=n,r[i++]=t>>>8,r[i]=t}}function cl(n){return function(e,t){var i=e.reserve(5),r=e.buffer;r[i++]=n,r[i++]=t>>>24,r[i++]=t>>>16,r[i++]=t>>>8,r[i]=t}}function xt(n,e,t,i){return function(r,o){var s=r.reserve(e+1);r.buffer[s++]=n,t.call(r.buffer,o,s,i)}}function CW(n,e){new vie(this,e,n)}function SW(n,e){new wie(this,e,n)}function DW(n,e){yW.write(this,n,e,!1,23,4)}function TW(n,e){yW.write(this,n,e,!1,52,8)}});var LW=v(IW=>{var EW=dy(),kie=EW.Uint64BE,Pie=EW.Int64BE,RW=$n(),_W=ly(),Rie=PW(),_ie=tD().uint8,Eie=uy().ExtBuffer,Iie=typeof Uint8Array<"u",Lie=typeof Map<"u",Uu=[];Uu[1]=212;Uu[2]=213;Uu[4]=214;Uu[8]=215;Uu[16]=216;IW.getWriteType=Fie;function Fie(n){var e=Rie.getWriteToken(n),t=n&&n.useraw,i=Iie&&n&&n.binarraybuffer,r=i?RW.isArrayBuffer:RW.isBuffer,o=i?T:P,s=Lie&&n&&n.usemap,a=s?q:j,l={boolean:u,function:x,number:c,object:t?w:y,string:m(t?f:g),symbol:x,undefined:x};return l;function u(X,z){var B=z?195:194;e[B](X,z)}function c(X,z){var B=z|0,fe;if(z!==B){fe=203,e[fe](X,z);return}else-32<=B&&B<=127?fe=B&255:0<=B?fe=B<=255?204:B<=65535?205:206:fe=-128<=B?208:-32768<=B?209:210;e[fe](X,B)}function d(X,z){var B=207;e[B](X,z.toArray())}function h(X,z){var B=211;e[B](X,z.toArray())}function g(X){return X<32?1:X<=255?2:X<=65535?3:5}function f(X){return X<32?1:X<=65535?3:5}function m(X){return z;function z(B,fe){var ve=fe.length,Le=5+ve*3;B.offset=B.reserve(Le);var U=B.buffer,H=X(ve),Q=B.offset+H;ve=_W.write.call(U,fe,Q);var re=X(ve);if(H!==re){var Ee=Q+re-H,Qe=Q+ve;_W.copy.call(U,U,Ee,Q,Qe)}var Me=re===1?160+ve:re<=3?215+re:219;e[Me](B,ve),B.offset+=ve}}function y(X,z){if(z===null)return x(X,z);if(r(z))return o(X,z);if(Array.isArray(z))return C(X,z);if(kie.isUint64BE(z))return d(X,z);if(Pie.isInt64BE(z))return h(X,z);var B=X.codec.getExtPacker(z);if(B&&(z=B(z)),z instanceof Eie)return O(X,z);a(X,z)}function w(X,z){if(r(z))return K(X,z);y(X,z)}function x(X,z){var B=192;e[B](X,z)}function C(X,z){var B=z.length,fe=B<16?144+B:B<=65535?220:221;e[fe](X,B);for(var ve=X.codec.encode,Le=0;Le{wh.createCodec=FW;wh.install=jie;wh.filter=Nie;var Mie=$n();function $u(n){if(!(this instanceof $u))return new $u(n);this.options=n,this.init()}$u.prototype.init=function(){var n=this.options;return n&&n.uint8array&&(this.bufferish=Mie.Uint8Array),this};function jie(n){for(var e in n)$u.prototype[e]=Oie($u.prototype[e],n[e])}function Oie(n,e){return n&&e?t:n||e;function t(){return n.apply(this,arguments),e.apply(this,arguments)}}function Aie(n){return n=n.slice(),function(t){return n.reduce(e,t)};function e(t,i){return i(t)}}function Nie(n){return Array.isArray(n)?Aie(n):n}function FW(n){return new $u(n)}wh.preset=FW({preset:!0})});var gy=v(jW=>{var Hie=uy().ExtBuffer,Bie=fW(),qie=LW(),iD=xh();iD.install({addExtPacker:Yie,getExtPacker:Zie,init:MW});jW.preset=MW.call(iD.preset);function Wie(n){var e=qie.getWriteType(n);return t;function t(i,r){var o=e[typeof r];if(!o)throw new Error('Unsupported type "'+typeof r+'": '+r);o(i,r)}}function MW(){var n=this.options;return this.encode=Wie(n),n&&n.preset&&Bie.setExtPackers(this),this}function Yie(n,e,t){t=iD.filter(t);var i=e.name;if(i&&i!=="Object"){var r=this.extPackers||(this.extPackers={});r[i]=s}else{var o=this.extEncoderList||(this.extEncoderList=[]);o.unshift([e,s])}function s(a){return t&&(a=t(a)),new Hie(a,n)}}function Zie(n){var e=this.extPackers||(this.extPackers={}),t=n.constructor,i=t&&t.name&&e[t.name];if(i)return i;for(var r=this.extEncoderList||(this.extEncoderList=[]),o=r.length,s=0;s{nD.FlexDecoder=Xu;nD.FlexEncoder=Gu;var Ch=$n(),Jie=2048,Uie=65536,OW="BUFFER_SHORTAGE";function Xu(){if(!(this instanceof Xu))return new Xu}function Gu(){if(!(this instanceof Gu))return new Gu}Xu.mixin=HW($ie());Xu.mixin(Xu.prototype);Gu.mixin=HW(Xie());Gu.mixin(Gu.prototype);function $ie(){return{bufferish:Ch,write:n,fetch:zie,flush:e,push:NW,pull:Kie,read:AW,reserve:t,offset:0};function n(i){var r=this.offset?Ch.prototype.slice.call(this.buffer,this.offset):this.buffer;this.buffer=r?i?this.bufferish.concat([r,i]):r:i,this.offset=0}function e(){for(;this.offsetthis.buffer.length)throw new Error(OW);return this.offset=o,r}}function Xie(){return{bufferish:Ch,write:Gie,fetch:n,flush:e,push:NW,pull:t,read:AW,reserve:i,send:r,maxBufferSize:Uie,minBufferSize:Jie,offset:0,start:0};function n(){var o=this.start;if(o1?this.bufferish.concat(o):o[0];return o.length=0,s}function i(o){var s=o|0;if(this.buffer){var a=this.buffer.length,l=this.offset|0,u=l+s;if(uthis.minBufferSize)this.flush(),this.push(o);else{var a=this.reserve(s);Ch.prototype.copy.call(o,this.buffer,a)}}}function Gie(){throw new Error("method not implemented: write()")}function zie(){throw new Error("method not implemented: fetch()")}function AW(){var n=this.buffers&&this.buffers.length;return n?(this.flush(),this.pull()):this.fetch()}function NW(n){var e=this.buffers||(this.buffers=[]);e.push(n)}function Kie(){var n=this.buffers||(this.buffers=[]);return n.shift()}function HW(n){return e;function e(t){for(var i in n)t[i]=n[i];return t}}});var py=v(BW=>{BW.EncodeBuffer=zu;var Qie=gy().preset,Vie=rD().FlexEncoder;Vie.mixin(zu.prototype);function zu(n){if(!(this instanceof zu))return new zu(n);if(n&&(this.options=n,n.codec)){var e=this.codec=n.codec;e.bufferish&&(this.bufferish=e.bufferish)}}zu.prototype.codec=Qie;zu.prototype.write=function(n){this.codec.encode(this,n)}});var Q0=v(qW=>{qW.encode=tne;var ene=py().EncodeBuffer;function tne(n,e){var t=new ene(e);return t.write(n),t.read()}});var ZW=v(YW=>{YW.setExtUnpackers=rne;var WW=$n(),ine=WW.global,oD,nne={name:1,message:1,stack:1,columnNumber:1,fileName:1,lineNumber:1};function rne(n){n.addExtUnpacker(14,[hr,dl(Error)]),n.addExtUnpacker(1,[hr,dl(EvalError)]),n.addExtUnpacker(2,[hr,dl(RangeError)]),n.addExtUnpacker(3,[hr,dl(ReferenceError)]),n.addExtUnpacker(4,[hr,dl(SyntaxError)]),n.addExtUnpacker(5,[hr,dl(TypeError)]),n.addExtUnpacker(6,[hr,dl(URIError)]),n.addExtUnpacker(10,[hr,one]),n.addExtUnpacker(11,[hr,bn(Boolean)]),n.addExtUnpacker(12,[hr,bn(String)]),n.addExtUnpacker(13,[hr,bn(Date)]),n.addExtUnpacker(15,[hr,bn(Number)]),typeof Uint8Array<"u"&&(n.addExtUnpacker(17,bn(Int8Array)),n.addExtUnpacker(18,bn(Uint8Array)),n.addExtUnpacker(19,[zs,bn(Int16Array)]),n.addExtUnpacker(20,[zs,bn(Uint16Array)]),n.addExtUnpacker(21,[zs,bn(Int32Array)]),n.addExtUnpacker(22,[zs,bn(Uint32Array)]),n.addExtUnpacker(23,[zs,bn(Float32Array)]),typeof Float64Array<"u"&&n.addExtUnpacker(24,[zs,bn(Float64Array)]),typeof Uint8ClampedArray<"u"&&n.addExtUnpacker(25,bn(Uint8ClampedArray)),n.addExtUnpacker(26,zs),n.addExtUnpacker(29,[zs,bn(DataView)])),WW.hasBuffer&&n.addExtUnpacker(27,bn(ine))}function hr(n){return oD||(oD=sD().decode),oD(n)}function one(n){return RegExp.apply(null,n)}function dl(n){return function(e){var t=new n;for(var i in nne)t[i]=e[i];return t}}function bn(n){return function(e){return new n(e)}}function zs(n){return new Uint8Array(n).buffer}});var uD=v(lD=>{var JW=eD(),UW=dy(),$W=UW.Uint64BE,XW=UW.Int64BE;lD.getReadFormat=lne;lD.readUint8=GW;var aD=$n(),my=ly(),sne=typeof Map<"u",ane=!0;function lne(n){var e=aD.hasArrayBuffer&&n&&n.binarraybuffer,t=n&&n.int64,i=sne&&n&&n.usemap,r={map:i?cne:une,array:dne,str:hne,bin:e?pne:gne,ext:fne,uint8:GW,uint16:bne,uint32:vne,uint64:fy(8,t?Sne:xne),int8:mne,int16:yne,int32:wne,int64:fy(8,t?Dne:Cne),float32:fy(4,Tne),float64:fy(8,kne)};return r}function une(n,e){var t={},i,r=new Array(e),o=new Array(e),s=n.codec.decode;for(i=0;i{var Pne=uD();KW.getReadToken=Rne;function Rne(n){var e=Pne.getReadFormat(n);return n&&n.useraw?_ne(e):zW(e)}function zW(n){var e,t=new Array(256);for(e=0;e<=127;e++)t[e]=Sh(e);for(e=128;e<=143;e++)t[e]=zo(e-128,n.map);for(e=144;e<=159;e++)t[e]=zo(e-144,n.array);for(e=160;e<=191;e++)t[e]=zo(e-160,n.str);for(t[192]=Sh(null),t[193]=null,t[194]=Sh(!1),t[195]=Sh(!0),t[196]=Xn(n.uint8,n.bin),t[197]=Xn(n.uint16,n.bin),t[198]=Xn(n.uint32,n.bin),t[199]=Xn(n.uint8,n.ext),t[200]=Xn(n.uint16,n.ext),t[201]=Xn(n.uint32,n.ext),t[202]=n.float32,t[203]=n.float64,t[204]=n.uint8,t[205]=n.uint16,t[206]=n.uint32,t[207]=n.uint64,t[208]=n.int8,t[209]=n.int16,t[210]=n.int32,t[211]=n.int64,t[212]=zo(1,n.ext),t[213]=zo(2,n.ext),t[214]=zo(4,n.ext),t[215]=zo(8,n.ext),t[216]=zo(16,n.ext),t[217]=Xn(n.uint8,n.str),t[218]=Xn(n.uint16,n.str),t[219]=Xn(n.uint32,n.str),t[220]=Xn(n.uint16,n.array),t[221]=Xn(n.uint32,n.array),t[222]=Xn(n.uint16,n.map),t[223]=Xn(n.uint32,n.map),e=224;e<=255;e++)t[e]=Sh(e-256);return t}function _ne(n){var e,t=zW(n).slice();for(t[217]=t[196],t[218]=t[197],t[219]=t[198],e=160;e<=191;e++)t[e]=zo(e-160,n.bin);return t}function Sh(n){return function(){return n}}function Xn(n,e){return function(t){var i=n(t);return e(t,i)}}function zo(n,e){return function(t){return e(t,n)}}});var by=v(e8=>{var Ene=uy().ExtBuffer,Ine=ZW(),Lne=uD().readUint8,Fne=QW(),cD=xh();cD.install({addExtUnpacker:jne,getExtUnpacker:One,init:VW});e8.preset=VW.call(cD.preset);function Mne(n){var e=Fne.getReadToken(n);return t;function t(i){var r=Lne(i),o=e[r];if(!o)throw new Error("Invalid type: "+(r&&"0x"+r.toString(16)));return o(i)}}function VW(){var n=this.options;return this.decode=Mne(n),n&&n.preset&&Ine.setExtUnpackers(this),this}function jne(n,e){var t=this.extUnpackers||(this.extUnpackers=[]);t[n]=cD.filter(e)}function One(n){var e=this.extUnpackers||(this.extUnpackers=[]);return e[n]||t;function t(i){return new Ene(i,n)}}});var yy=v(t8=>{t8.DecodeBuffer=Ku;var Ane=by().preset,Nne=rD().FlexDecoder;Nne.mixin(Ku.prototype);function Ku(n){if(!(this instanceof Ku))return new Ku(n);if(n&&(this.options=n,n.codec)){var e=this.codec=n.codec;e.bufferish&&(this.bufferish=e.bufferish)}}Ku.prototype.codec=Ane;Ku.prototype.fetch=function(){return this.codec.decode(this)}});var sD=v(i8=>{i8.decode=Bne;var Hne=yy().DecodeBuffer;function Bne(n,e){var t=new Hne(e);return t.write(n),t.read()}});var o8=v(r8=>{r8.Encoder=Qu;var n8=py().EncodeBuffer;function Qu(n){if(!(this instanceof Qu))return new Qu(n);n8.call(this,n)}Qu.prototype=new n8;Qu.prototype.encode=function(n){this.write(n)};Qu.prototype.end=function(n){arguments.length&&this.encode(n),this.flush()}});var l8=v(a8=>{a8.Decoder=Vu;var s8=yy().DecodeBuffer;function Vu(n){if(!(this instanceof Vu))return new Vu(n);s8.call(this,n)}Vu.prototype=new s8;Vu.prototype.decode=function(n){arguments.length&&this.write(n),this.flush()};Vu.prototype.end=function(n){this.decode(n)}});var d8=v(c8=>{c8.createEncodeStream=ec;var qne=require("util"),u8=require("stream").Transform,Wne=py().EncodeBuffer;qne.inherits(ec,u8);var Yne={objectMode:!0};function ec(n){if(!(this instanceof ec))return new ec(n);n?n.objectMode=!0:n=Yne,u8.call(this,n);var e=this,t=this.encoder=new Wne(n);t.push=function(i){e.push(i)}}ec.prototype._transform=function(n,e,t){this.encoder.write(n),t&&t()};ec.prototype._flush=function(n){this.encoder.flush(),n&&n()}});var p8=v(g8=>{g8.createDecodeStream=Dh;var Zne=require("util"),h8=require("stream").Transform,Jne=yy().DecodeBuffer;Zne.inherits(Dh,h8);var Une={objectMode:!0};function Dh(n){if(!(this instanceof Dh))return new Dh(n);n?n.objectMode=!0:n=Une,h8.call(this,n);var e=this,t=this.decoder=new Jne(n);t.push=function(i){e.push(i)}}Dh.prototype._transform=function(n,e,t){this.decoder.write(n),this.decoder.flush(),t&&t()}});var m8=v(f8=>{by();gy();f8.createCodec=xh().createCodec});var y8=v(b8=>{by();gy();b8.codec={preset:xh().preset}});var v8=v(Ko=>{Ko.encode=Q0().encode;Ko.decode=sD().decode;Ko.Encoder=o8().Encoder;Ko.Decoder=l8().Decoder;Ko.createEncodeStream=d8().createEncodeStream;Ko.createDecodeStream=p8().createDecodeStream;Ko.createCodec=m8().createCodec;Ko.codec=y8().codec});var Th=v(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.BaseApi=void 0;var dD=class{constructor({data:e,client:t}){this.data=e,t?this.client=t:Object.defineProperty(this,"client",{value:this})}get transport(){return this.client._transport}equals(e){try{return String(this.data)===String(e.data)}catch{return!1}}async request(e,t=[]){return Error.captureStackTrace(t),new Promise((i,r)=>{this.transport.request(e,this.getArgsByPrefix(t),(o,s)=>{if(o){let a=new Error(o[1]);if(!e.endsWith("get_var")){let l=t.stack;a.stack=`Error: request error on "${e}" - ${o[1]} +`+l.split(/\r?\n/).slice(3).join(` +`),this.client.logError(`request error on "${e}"`,t,a)}r(a)}else i(s)})})}getArgsByPrefix(e){return this.prefix!=="nvim_"&&e[0]!=this?[this.transport.isVim?this.data:this,...e]:e}getVar(e){return this.request(`${this.prefix}get_var`,[e]).then(t=>t,t=>null)}setVar(e,t,i=!1){if(i){this.notify(`${this.prefix}set_var`,[e,t]);return}return this.request(`${this.prefix}set_var`,[e,t])}deleteVar(e){this.notify(`${this.prefix}del_var`,[e])}getOption(e){return this.request(`${this.prefix}get_option`,[e])}setOption(e,t,i){if(i){this.notify(`${this.prefix}set_option`,[e,t]);return}return this.request(`${this.prefix}set_option`,[e,t])}notify(e,t=[]){this.transport.notify(e,this.getArgsByPrefix(t))}toJSON(){var e;return(e=this.data)!==null&&e!==void 0?e:0}};vy.BaseApi=dD});var xy=v(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.Buffer=void 0;var $ne=Th(),hD=class extends $ne.BaseApi{constructor(){super(...arguments),this.prefix="nvim_buf_"}async attach(e=!1,t={}){return await this.request(`${this.prefix}attach`,[e,t])}async detach(){return await this.request(`${this.prefix}detach`,[])}get id(){return this.data}get length(){return this.request(`${this.prefix}line_count`,[])}get lines(){return this.getLines()}get changedtick(){return this.request(`${this.prefix}get_changedtick`,[])}get commands(){return this.getCommands()}getCommands(e={}){return this.request(`${this.prefix}get_commands`,[e])}getLines({start:e,end:t,strictIndexing:i}={start:0,end:-1,strictIndexing:!0}){let r=typeof i>"u"?!0:i;return this.request(`${this.prefix}get_lines`,[e,t,r])}setLines(e,t,i=!1){let{start:r,end:o,strictIndexing:s}=t??{};r=r??0,o=o??r+1;let a=s??!0;return this[i?"notify":"request"](`${this.prefix}set_lines`,[r,o,a,typeof e=="string"?[e]:e])}setVirtualText(e,t,i,r={}){return this.client.call("coc#vtext#add",[this.id,e,t,i,r],!0),Promise.resolve(e)}deleteExtMark(e,t){this.notify(`${this.prefix}del_extmark`,[e,t])}async getExtMarkById(e,t,i={}){return this.request(`${this.prefix}get_extmark_by_id`,[e,t,i])}async getExtMarks(e,t,i,r={}){return this.request(`${this.prefix}get_extmarks`,[e,t,i,r])}setExtMark(e,t,i,r={}){this.notify(`${this.prefix}set_extmark`,[e,t,i,r])}insert(e,t){return this.setLines(e,{start:t,end:t,strictIndexing:!0})}replace(e,t){let i=typeof e=="string"?[e]:e;return this.setLines(i,{start:t,end:t+i.length,strictIndexing:!1})}remove(e,t,i=!1){return this.setLines([],{start:e,end:t,strictIndexing:i})}append(e){return this.setLines(e,{start:-1,end:-1,strictIndexing:!1})}get name(){return this.request(`${this.prefix}get_name`,[])}setName(e){return this.request(`${this.prefix}set_name`,[e])}get valid(){return this.request(`${this.prefix}is_valid`,[])}mark(e){return this.request(`${this.prefix}get_mark`,[e])}getKeymap(e){return this.request(`${this.prefix}get_keymap`,[e])}setKeymap(e,t,i,r={}){let o=r.expr?Object.assign({replace_keycodes:!0},r):r;this.notify(`${this.prefix}set_keymap`,[e,t,i,o])}deleteKeymap(e,t){this.notify(`${this.prefix}del_keymap`,[e,t])}get loaded(){return this.request(`${this.prefix}is_loaded`,[])}getOffset(e){return this.request(`${this.prefix}get_offset`,[e])}addHighlight({hlGroup:e,line:t,colStart:i,colEnd:r,srcId:o}){if(!e)throw new Error("hlGroup should not empty");let s=typeof r<"u"?r:-1,a=typeof i<"u"?i:-0,l=typeof o<"u"?o:-1,u=l==0?"request":"notify",c=this[u](`${this.prefix}add_highlight`,[l,e,t,a,s]);return u==="request"?c:Promise.resolve(null)}clearHighlight(e={}){let t={srcId:-1,lineStart:0,lineEnd:-1},{srcId:i,lineStart:r,lineEnd:o}=Object.assign({},t,e);return this.notify(`${this.prefix}clear_highlight`,[i,r,o])}highlightRanges(e,t,i){this.client.call("coc#highlight#ranges",[this.id,e,t,i],!0)}clearNamespace(e,t=0,i=-1){this.client.call("coc#highlight#clear_highlight",[this.id,e,t,i],!0)}placeSign(e){let t={lnum:e.lnum};typeof e.priority=="number"&&(t.priority=e.priority),this.client.call("sign_place",[e.id||0,e.group||"",e.name,this.id,t],!0)}unplaceSign(e){let t={buffer:this.id};e.id!=null&&(t.id=e.id),this.client.call("sign_unplace",[e.group||"",t],!0)}async getSigns(e){return(await this.client.call("sign_getplaced",[this.id,e||{}]))[0].signs}async getHighlights(e,t=0,i=-1){let r=[],o=await this.client.call("coc#highlight#get_highlights",[this.id,e,t,i]);for(let s of o)r.push({hlGroup:s[0],lnum:s[1],colStart:s[2],colEnd:s[3],id:s[4]});return r}updateHighlights(e,t,i={}){if(typeof i=="number"){this.client.logError("Bad option for buffer.updateHighlights()",new Error);return}let r=typeof i.start=="number"?i.start:0,o=typeof i.end=="number"?i.end:-1,s=typeof i.changedtick=="number"?i.changedtick:null,a=typeof i.priority=="number"?i.priority:null;if(r==0&&o==-1){let l=t.map(u=>[u.hlGroup,u.lnum,u.colStart,u.colEnd,u.combine===!1?0:1,u.start_incl?1:0,u.end_incl?1:0]);this.client.call("coc#highlight#buffer_update",[this.id,e,l,a,s],!0);return}this.client.call("coc#highlight#update_highlights",[this.id,e,t,r,o,a,s],!0)}listen(e,t,i){this.client.attachBufferEvent(this.id,e,t),i&&i.push({dispose:()=>{this.client.detachBufferEvent(this.id,e,t)}})}};wy.Buffer=hD});var Sy=v(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.Window=void 0;var Xne=Th(),gD=class extends Xne.BaseApi{constructor(){super(...arguments),this.prefix="nvim_win_"}get id(){return this.data}setBuffer(e){return this.request(`${this.prefix}set_buf`,[e])}get buffer(){return this.request(`${this.prefix}get_buf`,[])}get tabpage(){return this.request(`${this.prefix}get_tabpage`,[])}get cursor(){return this.request(`${this.prefix}get_cursor`,[])}setCursor(e,t=!1){return this[t?"notify":"request"](`${this.prefix}set_cursor`,[e])}get height(){return this.request(`${this.prefix}get_height`,[])}setHeight(e,t=!1){return this[t?"notify":"request"](`${this.prefix}set_height`,[e])}get width(){return this.request(`${this.prefix}get_width`,[])}setWidth(e,t=!1){return this[t?"notify":"request"](`${this.prefix}set_width`,[e])}get position(){return this.request(`${this.prefix}get_position`,[])}get row(){return this.request(`${this.prefix}get_position`,[]).then(e=>e[0])}get col(){return this.request(`${this.prefix}get_position`,[]).then(e=>e[1])}get valid(){return this.request(`${this.prefix}is_valid`,[])}get number(){return this.request(`${this.prefix}get_number`,[])}setConfig(e,t){return this[t?"notify":"request"](`${this.prefix}set_config`,[e])}getConfig(){return this.request(`${this.prefix}get_config`,[])}close(e,t){return t?(this.notify(`${this.prefix}close`,[e]),null):this.request(`${this.prefix}close`,[e])}highlightRanges(e,t,i=10,r){if(r){this.client.call("coc#highlight#match_ranges",[this.id,0,t,e,i],!0);return}return this.client.call("coc#highlight#match_ranges",[this.id,0,t,e,i])}clearMatchGroup(e){this.client.call("coc#highlight#clear_match_group",[this.id,e],!0)}clearMatches(e){this.client.call("coc#highlight#clear_matches",[this.id,e],!0)}};Cy.Window=gD});var Ty=v(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.Tabpage=void 0;var Gne=Th(),pD=class extends Gne.BaseApi{constructor(){super(...arguments),this.prefix="nvim_tabpage_"}get id(){return this.data}get windows(){return this.request(`${this.prefix}list_wins`,[])}get window(){return this.request(`${this.prefix}get_win`,[])}get valid(){return this.request(`${this.prefix}is_valid`,[])}get number(){return this.request(`${this.prefix}get_number`,[])}getOption(){throw new Error("Tabpage does not have `getOption`")}setOption(){throw new Error("Tabpage does not have `setOption`")}};Dy.Tabpage=pD});var w8=v(hl=>{"use strict";Object.defineProperty(hl,"__esModule",{value:!0});hl.Metadata=hl.ExtType=void 0;var zne=xy(),Kne=Sy(),Qne=Ty(),Vne;(function(n){n[n.Buffer=0]="Buffer",n[n.Window=1]="Window",n[n.Tabpage=2]="Tabpage"})(Vne=hl.ExtType||(hl.ExtType={}));hl.Metadata=[{constructor:zne.Buffer,name:"Buffer",prefix:"nvim_buf_"},{constructor:Kne.Window,name:"Window",prefix:"nvim_win_"},{constructor:Qne.Tabpage,name:"Tabpage",prefix:"nvim_tabpage_"}]});var C8=v(mD=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var ere=require("stream"),tre=Buffer.poolSize,x8=10*1024*1024,fD=class extends ere.Transform{constructor(){super({readableHighWaterMark:x8,writableHighWaterMark:x8}),this.chunks=null,this.timer=null}sendData(){let{chunks:e}=this;e&&(this.chunks=null,this.push(Buffer.concat(e)))}_transform(e,t,i){let{chunks:r,timer:o}=this;if(o&&clearTimeout(o),e.length{"use strict";var CD=gr&&gr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(gr,"__esModule",{value:!0});gr.createLogger=gr.level=gr.nullLogger=void 0;var yD=CD(require("fs")),ire=CD(require("os")),vD=CD(require("path")),nre=require("util"),tc=process.env.COC_NODE_CLIENT_DEBUG=="1"&&process.env.COC_TESTER=="1";gr.nullLogger={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{},trace:()=>{}};function rre(){let n=process.env.NODE_CLIENT_LOG_FILE;if(n)return n;let e=process.env.XDG_RUNTIME_DIR;return e?vD.default.join(e,"node-client.log"):vD.default.join(ire.default.tmpdir(),`node-client-${process.pid}.log`)}var wD=rre();gr.level=tc?"debug":process.env.NODE_CLIENT_LOG_LEVEL||"info";var gl=!tc&&process.getuid&&process.getuid()==0;if(!gl&&!tc)try{yD.default.mkdirSync(vD.default.dirname(wD),{recursive:!0}),yD.default.writeFileSync(wD,"",{encoding:"utf8",mode:438})}catch{gl=!0}function S8(n){return n==null?n:Array.isArray(n)?n.map(e=>S8(e)):typeof n=="object"&&typeof n.prefix=="string"&&typeof n.data=="number"?"["+n.prefix+n.data+"]":n}function ore(n){return tc?(0,nre.inspect)(n,{depth:null,colors:!0,compact:!1}):n==null?String(n):typeof n=="object"?JSON.stringify(n,null,2):String(n)}var bD=n=>n<10?`0${n}`:n.toString(),sre=n=>n<10?`00${n}`:n<100?`0${n}`:n.toString();function are(n){return`${bD(n.getHours())}:${bD(n.getMinutes())}:${bD(n.getSeconds())}.${sre(n.getMilliseconds())}`}var xD=class{constructor(e){this.name=e}get stream(){return this._stream?this._stream:(tc?this._stream=process.stdout:this._stream=yD.default.createWriteStream(wD,{encoding:"utf8"}),this._stream)}getText(e,t,i){let r="";return i.length&&(r=" "+S8(i).map(s=>ore(s)).join(", ")),`${are(new Date)} ${e.toUpperCase()} [${this.name}] - ${t}${r} +`}debug(e,...t){gr.level!="debug"||gl||this.stream.write(this.getText("debug",e,t))}info(e,...t){gl||this.stream.write(this.getText("info",e,t))}warn(e,...t){gl||this.stream.write(this.getText("warn",e,t))}error(e,...t){if(gl)return;(tc?process.stderr:this.stream).write(this.getText("error",e,t))}trace(e,...t){gr.level!="trace"||gl||this.stream.write(this.getText("trace",e,t))}};function lre(n){return new xD(n)}gr.createLogger=lre});var TD=v(DD=>{"use strict";Object.defineProperty(DD,"__esModule",{value:!0});var ure=require("events"),T8=ky(),D8=T8.level==="debug",kh=(0,T8.createLogger)("transport"),SD=class extends ure.EventEmitter{constructor(e,t){super(),this.logger=e,this.isVim=t,this.pauseLevel=0,this.paused=new Map}debug(e,...t){!D8||kh.debug(e,...t)}info(e,...t){kh.info(e,...t)}debugMessage(e){if(!D8)return;let t=e[0];t==0?kh.debug("receive request:",e.slice(1)):t==1||(t==2?kh.debug("receive notification:",e.slice(1)):kh.debug("unknown message:",e))}pauseNotification(){this.pauseLevel=this.pauseLevel+1,this.paused.set(this.pauseLevel,[])}cancelNotification(){let{pauseLevel:e}=this;e>0&&(this.paused.delete(e),this.pauseLevel=e-1)}resumeNotification(e=!1){let{pauseLevel:t}=this;if(t==0)return e?null:Promise.resolve([[],null]);let i={};Error.captureStackTrace(i),this.pauseLevel=t-1;let r=this.paused.get(t);return this.paused.delete(t),r&&r.length?new Promise((o,s)=>{if(!e)return this.request("nvim_call_atomic",[r],(a,l)=>{if(a){let u=new Error(`call_atomic error: ${a[1]}`);return u.stack=i.stack.replace(/^Error/,`Error: ${u.message}`),s(u)}if(Array.isArray(l)&&l[1]!=null){let[u,c,d]=l[1],[h,g]=r[u],f=new Error(`call_atomic request error on "${h}": ${d}`);return f.stack=i.stack.replace(/^Error/,`Error: ${f.message}`),this.logger.error(`call_atomic request error ${c} on "${h}"`,g,d,f),s(f)}o(l)});this.notify("nvim_call_atomic",[r]),o(void 0)}):e?null:Promise.resolve([[],void 0])}};DD.default=SD});var P8=v(pr=>{"use strict";var cre=pr&&pr.__createBinding||(Object.create?function(n,e,t,i){i===void 0&&(i=t);var r=Object.getOwnPropertyDescriptor(e,t);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,i,r)}:function(n,e,t,i){i===void 0&&(i=t),n[i]=e[t]}),dre=pr&&pr.__setModuleDefault||(Object.create?function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}:function(n,e){n.default=e}),hre=pr&&pr.__importStar||function(n){if(n&&n.__esModule)return n;var e={};if(n!=null)for(var t in n)t!=="default"&&Object.prototype.hasOwnProperty.call(n,t)&&cre(e,n,t);return dre(e,n),e},k8=pr&&pr.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(pr,"__esModule",{value:!0});pr.NvimTransport=void 0;var Qo=hre(v8()),gre=w8(),pre=k8(C8()),fre=k8(TD()),kD=class extends fre.default{constructor(e){super(e,!1),this.pending=new Map,this.nextRequestId=1,this.attached=!1;let t=this.setupCodec();this.encodeStream=Qo.createEncodeStream({codec:t}),this.decodeStream=Qo.createDecodeStream({codec:t}),this.decodeStream.on("data",i=>{this.parseMessage(i)}),this.decodeStream.on("end",()=>{this.detach(),this.emit("detach")})}parseMessage(e){let t=e[0];if(this.debugMessage(e),t===0){let i=e[2].toString();this.emit("request",i,e[3],this.createResponse(i,e[1]))}else if(t===1){let i=e[1],r=this.pending.get(i);if(r){this.pending.delete(i);let o=e[2];o&&o.length!=2&&(o=[0,o.toString()]),r(o,e[3])}}else t===2?this.emit("notification",e[1].toString(),e[2]):console.error(`Invalid message type ${t}`)}setupCodec(){let e=Qo.createCodec();return gre.Metadata.forEach(({constructor:t},i)=>{e.addExtPacker(i,t,r=>Qo.encode(r.data)),e.addExtUnpacker(i,r=>new t({client:this.client,data:Qo.decode(r)}))}),this.codec=e,this.codec}attach(e,t,i){this.encodeStream=this.encodeStream.pipe(e);let r=new pre.default;t.pipe(r).pipe(this.decodeStream),this.writer=e,this.reader=t,this.client=i,this.attached=!0}detach(){if(!!this.attached){this.attached=!1,this.encodeStream.unpipe(this.writer),this.reader.unpipe(this.decodeStream);for(let e of this.pending.values())e([0,"transport disconnected"]);this.pending.clear()}}request(e,t,i){if(!this.attached)return i([0,"transport disconnected"]);let r=this.nextRequestId;this.nextRequestId=this.nextRequestId+1;let o=Date.now();this.debug("request to nvim:",r,e,t),this.encodeStream.write(Qo.encode([0,r,e,t],{codec:this.codec})),this.pending.set(r,(s,a)=>{this.debug("response of nvim:",r,Date.now()-o,a,s),i(s,a)})}notify(e,t){if(!!this.attached){if(this.pauseLevel!=0){let i=this.paused.get(this.pauseLevel);if(i){i.push([e,t]);return}}this.debug("nvim notification:",e,t),this.encodeStream.write(Qo.encode([2,e,t],{codec:this.codec}))}}send(e){this.encodeStream.write(Qo.encode(e,{codec:this.codec}))}createResponse(e,t){let{encodeStream:i}=this,r=Date.now(),o=!1,s=setTimeout(()=>{this.debug("request to client cost more than 1s",t)},1e3);return{send:(a,l)=>{clearTimeout(s),!(o||!this.attached)&&(this.debug("response of client:",t,`${Date.now()-r}ms`,a,l==!0),o=!0,i.write(Qo.encode([1,t,l?a:null,l?null:a])))}}}};pr.NvimTransport=kD});var Ph=v(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});ic.isTester=ic.isCocNvim=void 0;ic.isCocNvim=!0;ic.isTester=process.env.COC_TESTER=="1"});var R8=v(_h=>{"use strict";var mre=_h&&_h.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(_h,"__esModule",{value:!0});var bre=mre(require("events")),yre=ky(),Rh=(0,yre.createLogger)("connection"),vre=10,PD=class extends bre.default{constructor(e,t){super(),this.writeable=t;let i=[],r=!1;e.once("data",a=>{if(!Buffer.isBuffer(a))throw new Error("Vim connection expect buffer from readable stream.")});let o=a=>{let l=0,u=a.byteLength;for(let c=0;c{Rh.warn("readable stream closed.")};e.on("close",s),this.clean=()=>{e.off("data",o),e.off("close",s)}}parseData(e){if(e.length==0)return;let t;try{t=JSON.parse(e)}catch{console.error(`Invalid data from vim: ${e}`);return}let[i,r]=t;i>0?(Rh.debug("received request:",i,r),this.emit("request",i,r)):i==0?(Rh.debug("received notification:",r),this.emit("notification",r)):(Rh.debug("received response:",i,r),this.emit("response",i,r))}response(e,t){this.send([e,t||null])}notify(e,t){this.send([0,[e,t||null]])}send(e){Rh.debug("send to vim:",e),this.writeable.write(JSON.stringify(e)+` +`)}redraw(e){this.send(["redraw",e?"force":""])}command(e){this.send(["ex",e])}expr(e){this.send(["expr",e])}call(e,t,i){if(typeof i=="number"){this.send(["call",e,t,i]);return}this.send(["call",e,t])}dispose(){typeof this.clean=="function"&&(this.clean(),this.clean=void 0),this.removeAllListeners()}};_h.default=PD});var _8=v(_D=>{"use strict";Object.defineProperty(_D,"__esModule",{value:!0});var wre=Ph(),xre=wre.isCocNvim?"coc#api#call":"nvim#api#call",RD=class{constructor(e,t,i){this.connection=e,this.cb=t,this.id=i}request(e,t=[]){this.method=e,this.connection.call(xre,[e.slice(5),t],this.id)}callback(e,t,i){let{method:r,cb:o}=this;if(t)return o([0,t.toString()]);switch(r){case"nvim_list_wins":case"nvim_tabpage_list_wins":return o(null,i.map(s=>e.createWindow(s)));case"nvim_tabpage_get_win":case"nvim_get_current_win":case"nvim_open_win":return o(null,e.createWindow(i));case"nvim_list_bufs":return o(null,i.map(s=>e.createBuffer(s)));case"nvim_win_get_buf":case"nvim_create_buf":case"nvim_get_current_buf":return o(null,e.createBuffer(i));case"nvim_list_tabpages":return o(null,i.map(s=>e.createTabpage(s)));case"nvim_win_get_tabpage":case"nvim_get_current_tabpage":return o(null,e.createTabpage(i));default:return o(null,i)}}};_D.default=RD});var E8=v(nc=>{"use strict";var ID=nc&&nc.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(nc,"__esModule",{value:!0});nc.VimTransport=void 0;var Cre=Ph(),Sre=ID(TD()),Dre=ID(R8()),Tre=ID(_8()),ED=class extends Sre.default{constructor(e){super(e,!0),this.pending=new Map,this.nextRequestId=-1,this.attached=!1,this.errText="",this.outText="",this.notifyMethod=Cre.isCocNvim?"coc#api#notify":"nvim#api#notify"}attach(e,t,i){let r=this.connection=new Dre.default(t,e);this.attached=!0,this.client=i,r.on("request",(o,s)=>{let[a,l]=s;this.emit("request",a,l,this.createResponse(a,o))}),r.on("notification",o=>{let[s,a]=o;this.emit("notification",s.toString(),a)}),r.on("response",(o,s)=>{let a=this.pending.get(o);if(a){this.pending.delete(o);let l=null,u=null;Array.isArray(s)?(l=s[0],u=s[1]):l=s,a.callback(this.client,l,u)}})}send(e){this.connection.send(e)}detach(){if(!!this.attached){this.attached=!1,this.connection.dispose();for(let e of this.pending.values())e.callback(this.client,"connection disconnected",null);this.pending.clear()}}request(e,t,i){if(!this.attached)return i([0,"transport disconnected"]);let r=this.nextRequestId;this.nextRequestId=this.nextRequestId-1;let o=new Tre.default(this.connection,(s,a)=>{i(s,a)},r);this.pending.set(r,o),o.request(e,t)}notify(e,t){if(!this.attached)return;if(this.pauseLevel!=0){let r=this.paused.get(this.pauseLevel);if(r){r.push([e,t]);return}}let i=e.slice(5);if(i=="err_write"){this.errText=this.errText+t[0].toString();return}if(i=="out_write"){let r=t[0].toString()||"";if(!r.includes(` +`))this.outText=this.outText+r;else{let o=this.outText+t[0].toString();this.outText="",this.connection.call(this.notifyMethod,[i,[o]])}return}if(i=="err_writeln"){let r=this.errText+t[0].toString();this.errText="",this.connection.call(this.notifyMethod,[i,[r]]);return}this.connection.call(this.notifyMethod,[i,t])}createResponse(e,t){let i=!1,{connection:r}=this;return{send:(o,s)=>{if(i||!this.attached)return;i=!0;let a=null;s&&(a=typeof o=="string"?o:o.toString()),r.response(t,[a,s?null:o])}}}};nc.VimTransport=ED});var I8=v(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.Neovim=void 0;var kre=Th(),Pre=Ph();function Eh(n){return n?Array.isArray(n)?n:[n]:[]}var LD=class extends kre.BaseApi{constructor(){super(...arguments),this.prefix="nvim_"}get apiInfo(){return this.request(`${this.prefix}get_api_info`)}get buffers(){return this.request(`${this.prefix}list_bufs`)}get buffer(){return this.request(`${this.prefix}get_current_buf`)}async setBuffer(e){await this.request(`${this.prefix}set_current_buf`,[e])}get chans(){return this.request(`${this.prefix}list_chans`)}getChanInfo(e){return this.request(`${this.prefix}get_chan_info`,[e])}createNamespace(e=""){return Pre.isCocNvim?(e=e.startsWith("coc-")?e.slice(4):e,this.request(`${this.prefix}call_function`,["coc#highlight#create_namespace",[e]])):this.request(`${this.prefix}create_namespace`,[e])}get namespaces(){return this.request(`${this.prefix}get_namespaces`,[])}get commands(){return this.getCommands()}getCommands(e={}){return this.request(`${this.prefix}get_commands`,[e])}get tabpages(){return this.request(`${this.prefix}list_tabpages`)}get tabpage(){return this.request(`${this.prefix}get_current_tabpage`)}async setTabpage(e){await this.request(`${this.prefix}set_current_tabpage`,[e])}get windows(){return this.getWindows()}get window(){return this.request(`${this.prefix}get_current_win`)}getWindows(){return this.request(`${this.prefix}list_wins`)}async setWindow(e){await this.request(`${this.prefix}set_current_win`,[e])}get runtimePaths(){return this.request(`${this.prefix}list_runtime_paths`)}setDirectory(e){return this.request(`${this.prefix}set_current_dir`,[e])}get line(){return this.getLine()}createNewBuffer(e=!1,t=!1){return this.request(`${this.prefix}create_buf`,[e,t])}openFloatWindow(e,t,i){return this.request(`${this.prefix}open_win`,[e,t,i])}getLine(){return this.request(`${this.prefix}get_current_line`)}setLine(e){return this.request(`${this.prefix}set_current_line`,[e])}getKeymap(e){return this.request(`${this.prefix}get_keymap`,[e])}setKeymap(e,t,i,r={}){let o=r.expr?Object.assign({replace_keycodes:!0},r):r;this.notify(`${this.prefix}set_keymap`,[e,t,i,o])}deleteKeymap(e,t){this.notify(`${this.prefix}del_keymap`,[e,t])}get mode(){return this.request(`${this.prefix}get_mode`)}get colorMap(){return this.request(`${this.prefix}get_color_map`)}getColorByName(e){return this.request(`${this.prefix}get_color_by_name`,[e])}getHighlight(e,t=!0){let i=typeof e=="string"?"by_name":"by_id";return this.request(`${this.prefix}get_hl_${i}`,[e,t])}getHighlightByName(e,t=!0){return this.request(`${this.prefix}get_hl_by_name`,[e,t])}getHighlightById(e,t=!0){return this.request(`${this.prefix}get_hl_by_id`,[e,t])}deleteCurrentLine(){return this.request(`${this.prefix}del_current_line`)}eval(e){return this.request(`${this.prefix}eval`,[e])}lua(e,t=[]){return this.request(`${this.prefix}exec_lua`,[e,t])}executeLua(e,t=[]){let i=Eh(t);return this.lua(e,i)}callDictFunction(e,t,i=[]){let r=Eh(i);return this.request(`${this.prefix}call_dict_function`,[e,t,r])}call(e,t=[],i){let r=Eh(t);return i?(this.notify(`${this.prefix}call_function`,[e,r]),null):this.request(`${this.prefix}call_function`,[e,r])}callTimer(e,t=[],i){let r=Eh(t);return i?(this.notify(`${this.prefix}call_function`,["coc#util#timer",[e,r]]),null):this.transport.isVim?(this.notify(`${this.prefix}call_function`,["coc#util#timer",[e,r]]),new Promise(o=>{setTimeout(()=>{o(null)},20)})):this.request(`${this.prefix}call_function`,["coc#util#timer",[e,r]])}callAsync(e,t=[]){let i=Eh(t);return this.client.sendAsyncRequest(e,i)}callFunction(e,t=[]){return this.call(e,t)}callAtomic(e){return this.request(`${this.prefix}call_atomic`,[e])}command(e,t){return t?(this.notify(`${this.prefix}command`,[e]),null):this.request(`${this.prefix}command`,[e])}commandOutput(e){return this.request(`${this.prefix}command_output`,[e])}exec(e,t=!1){return this.request(`${this.prefix}exec`,[e,t])}getVvar(e){return this.request(`${this.prefix}get_vvar`,[e])}feedKeys(e,t,i){return this.request(`${this.prefix}feedkeys`,[e,t,i])}input(e){return this.request(`${this.prefix}input`,[e])}inputMouse(e,t,i,r,o,s=0){return this.request(`${this.prefix}input_mouse`,[e,t,i,s,r,o])}parseExpression(e,t,i){return this.request(`${this.prefix}parse_expression`,[e,t,i])}getProc(e){return this.request(`${this.prefix}get_proc`,[e])}getProcChildren(e){return this.request(`${this.prefix}get_proc_children`,[e])}replaceTermcodes(e,t,i,r){return this.request(`${this.prefix}replace_termcodes`,[e,t,i,r])}strWidth(e){return this.request(`${this.prefix}strwidth`,[e])}outWrite(e){this.notify(`${this.prefix}out_write`,[e])}outWriteLine(e){this.outWrite(`${e} +`)}errWrite(e){this.notify(`${this.prefix}err_write`,[e])}errWriteLine(e){this.notify(`${this.prefix}err_writeln`,[e])}get uis(){return this.request(`${this.prefix}list_uis`)}uiAttach(e,t,i){return this.request(`${this.prefix}ui_attach`,[e,t,i])}uiDetach(){return this.request(`${this.prefix}ui_detach`,[])}uiTryResize(e,t){return this.request(`${this.prefix}ui_try_resize`,[e,t])}uiSetOption(e,t){return this.request(`${this.prefix}ui_set_option`,[e,t])}subscribe(e){return this.request(`${this.prefix}subscribe`,[e])}unsubscribe(e){return this.request(`${this.prefix}unsubscribe`,[e])}setClientInfo(e,t,i,r,o){this.notify(`${this.prefix}set_client_info`,[e,t,i,r,o])}async quit(){this.command("qa!",!0),this.transport&&this.transport.detach()}};Py.Neovim=LD});var Iy=v(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});rc.NeovimClient=rc.AsyncResponse=void 0;var Rre=P8(),_re=E8(),Ry=Ph(),Ere=xy(),Ire=I8(),Lre=Ty(),Fre=Sy(),Mre=require("events"),jre=["nvim_buf_attach","nvim_get_mode","nvim_list_runtime_paths","nvim_win_del_var","nvim_create_buf","nvim_exec","nvim_tabpage_list_wins","nvim_buf_del_var","nvim_buf_get_mark","nvim_tabpage_set_var","nvim_create_namespace","nvim_win_get_position","nvim_win_set_height","nvim_call_atomic","nvim_buf_detach","nvim_buf_line_count","nvim_set_current_buf","nvim_set_current_dir","nvim_get_var","nvim_del_current_line","nvim_win_set_width","nvim_out_write","nvim_win_is_valid","nvim_set_current_win","nvim_get_current_tabpage","nvim_tabpage_is_valid","nvim_set_var","nvim_win_get_height","nvim_win_get_buf","nvim_win_get_width","nvim_buf_set_name","nvim_subscribe","nvim_get_current_win","nvim_feedkeys","nvim_get_vvar","nvim_tabpage_get_number","nvim_get_current_buf","nvim_win_get_option","nvim_win_get_cursor","nvim_get_current_line","nvim_win_get_var","nvim_buf_get_var","nvim_set_current_tabpage","nvim_buf_clear_namespace","nvim_err_write","nvim_del_var","nvim_call_dict_function","nvim_set_current_line","nvim_get_api_info","nvim_unsubscribe","nvim_get_option","nvim_list_wins","nvim_set_client_info","nvim_win_set_cursor","nvim_win_set_option","nvim_eval","nvim_tabpage_get_var","nvim_buf_get_option","nvim_tabpage_del_var","nvim_buf_get_name","nvim_list_bufs","nvim_win_set_buf","nvim_win_close","nvim_command_output","nvim_command","nvim_tabpage_get_win","nvim_win_set_var","nvim_buf_add_highlight","nvim_buf_set_var","nvim_win_get_number","nvim_strwidth","nvim_buf_set_lines","nvim_err_writeln","nvim_buf_set_option","nvim_list_tabpages","nvim_set_option","nvim_buf_get_lines","nvim_buf_get_changedtick","nvim_win_get_tabpage","nvim_call_function","nvim_buf_is_valid"],_y=class{constructor(e,t){this.requestId=e,this.cb=t,this.finished=!1}finish(e,t){if(!this.finished){if(this.finished=!0,e){this.cb(new Error(e));return}this.cb(null,t)}}};rc.AsyncResponse=_y;function Ore(n,e){e.forEach(t=>{Object.getOwnPropertyNames(t.prototype).forEach(i=>{Object.defineProperty(n.prototype,i,Object.getOwnPropertyDescriptor(t.prototype,i)||Object.create(null))})})}var Ey=class extends Ire.Neovim{constructor(e,t){super({}),this.logger=e,this.isVim=t,this.requestId=1,this.responses=new Map,this.attachedBuffers=new Map,this._transport=t?new _re.VimTransport(e):new Rre.NvimTransport(e),this.handleRequest=this.handleRequest.bind(this),this.handleNotification=this.handleNotification.bind(this)}get transport(){return this._transport}echoError(e){let t=Ry.isCocNvim?"[coc.nvim] ":"";e instanceof Error?(Ry.isTester||this.errWriteLine(t+e.message+" use :CocOpenLog for details"),this.logError(e.message||"Unknown error",e)):(Ry.isTester||this.errWriteLine(t+e),this.logError(e.toString(),new Error))}logError(e,...t){Ry.isTester&&console.error(e,...t),this.logger&&this.logger.error(e,...t)}createBuffer(e){return new Ere.Buffer({data:e,client:this})}createWindow(e){return new Fre.Window({data:e,client:this})}createTabpage(e){return new Lre.Tabpage({data:e,client:this})}redrawVim(e){!this.isVim||this.transport.notify("nvim_command",["redraw"+(e?"!":"")])}attach({reader:e,writer:t},i=!0){this.transport.attach(t,e,this),this.transport.on("request",this.handleRequest),this.transport.on("notification",this.handleNotification),this.transport.on("detach",()=>{this.emit("disconnect"),this.transport.removeAllListeners("request"),this.transport.removeAllListeners("notification"),this.transport.removeAllListeners("detach")}),i?this._isReady=this.generateApi().catch(r=>(this.logger.error(r),!1)):(this._channelId=-1,this._isReady=Promise.resolve(!0))}detach(){this.attachedBuffers.clear(),this.transport.detach(),this.removeAllListeners()}get channelId(){return this._isReady.then(()=>this._channelId)}handleRequest(e,t,i){this.emit("request",e,t,i)}sendAsyncRequest(e,t){let i=this.requestId;return this.requestId=i+1,this.notify("nvim_call_function",["coc#rpc#async_request",[i,e,t||[]]]),new Promise((r,o)=>{let s=new _y(i,(a,l)=>{if(a)return o(a);r(l)});this.responses.set(i,s)})}handleNotification(e,t){if(e.endsWith("_event")){if(e.startsWith("nvim_buf_")){let i=e.replace(/nvim_buf_(.*)_event/,"$1"),{id:r}=t[0];if(!this.attachedBuffers.has(r))return;(this.attachedBuffers.get(r).get(i)||[]).forEach(a=>a(...t)),i==="detach"&&this.attachedBuffers.delete(r);return}if(e=="nvim_async_request_event"){let[i,r,o]=t;this.handleRequest(r,o,{send:(s,a)=>{this.notify("nvim_call_function",["coc#rpc#async_response",[i,s,a]])}});return}if(e=="nvim_async_response_event"){let[i,r,o]=t,s=this.responses.get(i);if(!s){this.logError(`Response not found for request ${i}`);return}this.responses.delete(i),s.finish(r,o);return}if(e==="nvim_error_event"){this.logger.error("Error event from nvim:",t[0],t[1]),this.emit("vim_error",t[1]);return}this.logger.warn(`Unhandled event: ${e}`,t)}else this.emit("notification",e,t)}requestApi(){return new Promise((e,t)=>{this.transport.request("nvim_get_api_info",[],(i,r)=>{i?t(new Error(Array.isArray(i)?i[1]:i.message||i.toString())):e(r)})})}async generateApi(){let e=await this.requestApi(),[t,i]=e;return this._channelId=t,!0}attachBufferEvent(e,t,i){let r=this.attachedBuffers.get(e)||new Map,o=r.get(t)||[];o.includes(i)||(o.push(i),r.set(t,o),this.attachedBuffers.set(e,r))}detachBufferEvent(e,t,i){let r=this.attachedBuffers.get(e);if(!r||!r.has(t))return;let o=r.get(t).filter(s=>s!==i);r.set(t,o)}pauseNotification(){let e={};Error.captureStackTrace(e),this.transport.pauseLevel!=0&&this.logError("Nested nvim.pauseNotification() detected, please avoid it:",e.stack),this.transport.pauseNotification(),process.nextTick(()=>{this.transport.pauseLevel>0&&this.logError("resumeNotification not called within same tick:",e.stack)})}resumeNotification(e,t){return this.isVim&&e&&this.transport.notify("nvim_command",["redraw"]),t?(this.transport.resumeNotification(!0),Promise.resolve(null)):this.transport.resumeNotification()}hasFunction(e){return this.isVim?jre.includes(e):!0}};rc.NeovimClient=Ey;Ore(Ey,[Mre.EventEmitter])});var L8=v(Ly=>{"use strict";Object.defineProperty(Ly,"__esModule",{value:!0});Ly.attach=void 0;var Are=require("net"),Nre=Iy(),Hre=ky();function Bre({reader:n,writer:e,proc:t,socket:i},r=null,o=!0){let s,a,l;if(r||(r=Hre.nullLogger),i){let u=(0,Are.createConnection)(i);s=u,a=u,u.once("close",()=>{l.detach()})}else n&&e?(s=e,a=n):t&&(s=t.stdin,a=t.stdout,t.once("disconnect",()=>{l.detach()}));if(s.on("error",u=>{u.code=="EPIPE"&&l.detach()}),s&&a)return l=new Nre.NeovimClient(r,process.env.VIM_NODE_RPC=="1"),l.attach({writer:s,reader:a},o),l;throw new Error("Invalid arguments, could not attach")}Ly.attach=Bre});var F8=v(fr=>{"use strict";Object.defineProperty(fr,"__esModule",{value:!0});fr.Tabpage=fr.Window=fr.Buffer=fr.NeovimClient=fr.Neovim=void 0;var qre=Iy();Object.defineProperty(fr,"Neovim",{enumerable:!0,get:function(){return qre.NeovimClient}});var Wre=Iy();Object.defineProperty(fr,"NeovimClient",{enumerable:!0,get:function(){return Wre.NeovimClient}});var Yre=xy();Object.defineProperty(fr,"Buffer",{enumerable:!0,get:function(){return Yre.Buffer}});var Zre=Sy();Object.defineProperty(fr,"Window",{enumerable:!0,get:function(){return Zre.Window}});var Jre=Ty();Object.defineProperty(fr,"Tabpage",{enumerable:!0,get:function(){return Jre.Tabpage}})});var M8=v(mr=>{"use strict";Object.defineProperty(mr,"__esModule",{value:!0});mr.Window=mr.Tabpage=mr.Buffer=mr.Neovim=mr.attach=void 0;var Ure=L8();Object.defineProperty(mr,"attach",{enumerable:!0,get:function(){return Ure.attach}});var Fy=F8();Object.defineProperty(mr,"Neovim",{enumerable:!0,get:function(){return Fy.Neovim}});Object.defineProperty(mr,"Buffer",{enumerable:!0,get:function(){return Fy.Buffer}});Object.defineProperty(mr,"Tabpage",{enumerable:!0,get:function(){return Fy.Tabpage}});Object.defineProperty(mr,"Window",{enumerable:!0,get:function(){return Fy.Window}})});var j8,A,mDe,Je=D(()=>{(()=>{"use strict";var n={470:r=>{function o(l){if(typeof l!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(l))}function s(l,u){for(var c,d="",h=0,g=-1,f=0,m=0;m<=l.length;++m){if(m2){var y=d.lastIndexOf("/");if(y!==d.length-1){y===-1?(d="",h=0):h=(d=d.slice(0,y)).length-1-d.lastIndexOf("/"),g=m,f=0;continue}}else if(d.length===2||d.length===1){d="",h=0,g=m,f=0;continue}}u&&(d.length>0?d+="/..":d="..",h=2)}else d.length>0?d+="/"+l.slice(g+1,m):d=l.slice(g+1,m),h=m-g-1;g=m,f=0}else c===46&&f!==-1?++f:f=-1}return d}var a={resolve:function(){for(var l,u="",c=!1,d=arguments.length-1;d>=-1&&!c;d--){var h;d>=0?h=arguments[d]:(l===void 0&&(l=process.cwd()),h=l),o(h),h.length!==0&&(u=h+"/"+u,c=h.charCodeAt(0)===47)}return u=s(u,!c),c?u.length>0?"/"+u:"/":u.length>0?u:"."},normalize:function(l){if(o(l),l.length===0)return".";var u=l.charCodeAt(0)===47,c=l.charCodeAt(l.length-1)===47;return(l=s(l,!u)).length!==0||u||(l="."),l.length>0&&c&&(l+="/"),u?"/"+l:l},isAbsolute:function(l){return o(l),l.length>0&&l.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var l,u=0;u0&&(l===void 0?l=c:l+="/"+c)}return l===void 0?".":a.normalize(l)},relative:function(l,u){if(o(l),o(u),l===u||(l=a.resolve(l))===(u=a.resolve(u)))return"";for(var c=1;cm){if(u.charCodeAt(g+w)===47)return u.slice(g+w+1);if(w===0)return u.slice(g+w)}else h>m&&(l.charCodeAt(c+w)===47?y=w:w===0&&(y=0));break}var x=l.charCodeAt(c+w);if(x!==u.charCodeAt(g+w))break;x===47&&(y=w)}var C="";for(w=c+y+1;w<=d;++w)w!==d&&l.charCodeAt(w)!==47||(C.length===0?C+="..":C+="/..");return C.length>0?C+u.slice(g+y):(g+=y,u.charCodeAt(g)===47&&++g,u.slice(g))},_makeLong:function(l){return l},dirname:function(l){if(o(l),l.length===0)return".";for(var u=l.charCodeAt(0),c=u===47,d=-1,h=!0,g=l.length-1;g>=1;--g)if((u=l.charCodeAt(g))===47){if(!h){d=g;break}}else h=!1;return d===-1?c?"/":".":c&&d===1?"//":l.slice(0,d)},basename:function(l,u){if(u!==void 0&&typeof u!="string")throw new TypeError('"ext" argument must be a string');o(l);var c,d=0,h=-1,g=!0;if(u!==void 0&&u.length>0&&u.length<=l.length){if(u.length===l.length&&u===l)return"";var f=u.length-1,m=-1;for(c=l.length-1;c>=0;--c){var y=l.charCodeAt(c);if(y===47){if(!g){d=c+1;break}}else m===-1&&(g=!1,m=c+1),f>=0&&(y===u.charCodeAt(f)?--f==-1&&(h=c):(f=-1,h=m))}return d===h?h=m:h===-1&&(h=l.length),l.slice(d,h)}for(c=l.length-1;c>=0;--c)if(l.charCodeAt(c)===47){if(!g){d=c+1;break}}else h===-1&&(g=!1,h=c+1);return h===-1?"":l.slice(d,h)},extname:function(l){o(l);for(var u=-1,c=0,d=-1,h=!0,g=0,f=l.length-1;f>=0;--f){var m=l.charCodeAt(f);if(m!==47)d===-1&&(h=!1,d=f+1),m===46?u===-1?u=f:g!==1&&(g=1):u!==-1&&(g=-1);else if(!h){c=f+1;break}}return u===-1||d===-1||g===0||g===1&&u===d-1&&u===c+1?"":l.slice(u,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(u,c){var d=c.dir||c.root,h=c.base||(c.name||"")+(c.ext||"");return d?d===c.root?d+h:d+"/"+h:h}(0,l)},parse:function(l){o(l);var u={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return u;var c,d=l.charCodeAt(0),h=d===47;h?(u.root="/",c=1):c=0;for(var g=-1,f=0,m=-1,y=!0,w=l.length-1,x=0;w>=c;--w)if((d=l.charCodeAt(w))!==47)m===-1&&(y=!1,m=w+1),d===46?g===-1?g=w:x!==1&&(x=1):g!==-1&&(x=-1);else if(!y){f=w+1;break}return g===-1||m===-1||x===0||x===1&&g===m-1&&g===f+1?m!==-1&&(u.base=u.name=f===0&&h?l.slice(1,m):l.slice(f,m)):(f===0&&h?(u.name=l.slice(1,g),u.base=l.slice(1,m)):(u.name=l.slice(f,g),u.base=l.slice(f,m)),u.ext=l.slice(g,m)),f>0?u.dir=l.slice(0,f-1):h&&(u.dir="/"),u},sep:"/",delimiter:":",win32:null,posix:null};a.posix=a,r.exports=a}},e={};function t(r){var o=e[r];if(o!==void 0)return o.exports;var s=e[r]={exports:{}};return n[r](s,s.exports,t),s.exports}t.d=(r,o)=>{for(var s in o)t.o(o,s)&&!t.o(r,s)&&Object.defineProperty(r,s,{enumerable:!0,get:o[s]})},t.o=(r,o)=>Object.prototype.hasOwnProperty.call(r,o),t.r=r=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})};var i={};(()=>{var r;if(t.r(i),t.d(i,{URI:()=>y,Utils:()=>z}),typeof process=="object")r=process.platform==="win32";else if(typeof navigator=="object"){var o=navigator.userAgent;r=o.indexOf("Windows")>=0}var s,a,l=(s=function(U,H){return s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(Q,re){Q.__proto__=re}||function(Q,re){for(var Ee in re)Object.prototype.hasOwnProperty.call(re,Ee)&&(Q[Ee]=re[Ee])},s(U,H)},function(U,H){if(typeof H!="function"&&H!==null)throw new TypeError("Class extends value "+String(H)+" is not a constructor or null");function Q(){this.constructor=U}s(U,H),U.prototype=H===null?Object.create(H):(Q.prototype=H.prototype,new Q)}),u=/^\w[\w\d+.-]*$/,c=/^\//,d=/^\/\//;function h(U,H){if(!U.scheme&&H)throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'.concat(U.authority,'", path: "').concat(U.path,'", query: "').concat(U.query,'", fragment: "').concat(U.fragment,'"}'));if(U.scheme&&!u.test(U.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(U.path){if(U.authority){if(!c.test(U.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(d.test(U.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}var g="",f="/",m=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,y=function(){function U(H,Q,re,Ee,Qe,Me){Me===void 0&&(Me=!1),typeof H=="object"?(this.scheme=H.scheme||g,this.authority=H.authority||g,this.path=H.path||g,this.query=H.query||g,this.fragment=H.fragment||g):(this.scheme=function(Dn,Ei){return Dn||Ei?Dn:"file"}(H,Me),this.authority=Q||g,this.path=function(Dn,Ei){switch(Dn){case"https":case"http":case"file":Ei?Ei[0]!==f&&(Ei=f+Ei):Ei=f}return Ei}(this.scheme,re||g),this.query=Ee||g,this.fragment=Qe||g,h(this,Me))}return U.isUri=function(H){return H instanceof U||!!H&&typeof H.authority=="string"&&typeof H.fragment=="string"&&typeof H.path=="string"&&typeof H.query=="string"&&typeof H.scheme=="string"&&typeof H.fsPath=="string"&&typeof H.with=="function"&&typeof H.toString=="function"},Object.defineProperty(U.prototype,"fsPath",{get:function(){return O(this,!1)},enumerable:!1,configurable:!0}),U.prototype.with=function(H){if(!H)return this;var Q=H.scheme,re=H.authority,Ee=H.path,Qe=H.query,Me=H.fragment;return Q===void 0?Q=this.scheme:Q===null&&(Q=g),re===void 0?re=this.authority:re===null&&(re=g),Ee===void 0?Ee=this.path:Ee===null&&(Ee=g),Qe===void 0?Qe=this.query:Qe===null&&(Qe=g),Me===void 0?Me=this.fragment:Me===null&&(Me=g),Q===this.scheme&&re===this.authority&&Ee===this.path&&Qe===this.query&&Me===this.fragment?this:new x(Q,re,Ee,Qe,Me)},U.parse=function(H,Q){Q===void 0&&(Q=!1);var re=m.exec(H);return re?new x(re[2]||g,X(re[4]||g),X(re[5]||g),X(re[7]||g),X(re[9]||g),Q):new x(g,g,g,g,g)},U.file=function(H){var Q=g;if(r&&(H=H.replace(/\\/g,f)),H[0]===f&&H[1]===f){var re=H.indexOf(f,2);re===-1?(Q=H.substring(2),H=f):(Q=H.substring(2,re),H=H.substring(re)||f)}return new x("file",Q,H,g,g)},U.from=function(H){var Q=new x(H.scheme,H.authority,H.path,H.query,H.fragment);return h(Q,!0),Q},U.prototype.toString=function(H){return H===void 0&&(H=!1),j(this,H)},U.prototype.toJSON=function(){return this},U.revive=function(H){if(H){if(H instanceof U)return H;var Q=new x(H);return Q._formatted=H.external,Q._fsPath=H._sep===w?H.fsPath:null,Q}return H},U}(),w=r?1:void 0,x=function(U){function H(){var Q=U!==null&&U.apply(this,arguments)||this;return Q._formatted=null,Q._fsPath=null,Q}return l(H,U),Object.defineProperty(H.prototype,"fsPath",{get:function(){return this._fsPath||(this._fsPath=O(this,!1)),this._fsPath},enumerable:!1,configurable:!0}),H.prototype.toString=function(Q){return Q===void 0&&(Q=!1),Q?j(this,!0):(this._formatted||(this._formatted=j(this,!1)),this._formatted)},H.prototype.toJSON=function(){var Q={$mid:1};return this._fsPath&&(Q.fsPath=this._fsPath,Q._sep=w),this._formatted&&(Q.external=this._formatted),this.path&&(Q.path=this.path),this.scheme&&(Q.scheme=this.scheme),this.authority&&(Q.authority=this.authority),this.query&&(Q.query=this.query),this.fragment&&(Q.fragment=this.fragment),Q},H}(y),C=((a={})[58]="%3A",a[47]="%2F",a[63]="%3F",a[35]="%23",a[91]="%5B",a[93]="%5D",a[64]="%40",a[33]="%21",a[36]="%24",a[38]="%26",a[39]="%27",a[40]="%28",a[41]="%29",a[42]="%2A",a[43]="%2B",a[44]="%2C",a[59]="%3B",a[61]="%3D",a[32]="%20",a);function P(U,H,Q){for(var re=void 0,Ee=-1,Qe=0;Qe=97&&Me<=122||Me>=65&&Me<=90||Me>=48&&Me<=57||Me===45||Me===46||Me===95||Me===126||H&&Me===47||Q&&Me===91||Q&&Me===93||Q&&Me===58)Ee!==-1&&(re+=encodeURIComponent(U.substring(Ee,Qe)),Ee=-1),re!==void 0&&(re+=U.charAt(Qe));else{re===void 0&&(re=U.substr(0,Qe));var Dn=C[Me];Dn!==void 0?(Ee!==-1&&(re+=encodeURIComponent(U.substring(Ee,Qe)),Ee=-1),re+=Dn):Ee===-1&&(Ee=Qe)}}return Ee!==-1&&(re+=encodeURIComponent(U.substring(Ee))),re!==void 0?re:U}function T(U){for(var H=void 0,Q=0;Q1&&U.scheme==="file"?"//".concat(U.authority).concat(U.path):U.path.charCodeAt(0)===47&&(U.path.charCodeAt(1)>=65&&U.path.charCodeAt(1)<=90||U.path.charCodeAt(1)>=97&&U.path.charCodeAt(1)<=122)&&U.path.charCodeAt(2)===58?H?U.path.substr(1):U.path[1].toLowerCase()+U.path.substr(2):U.path,r&&(Q=Q.replace(/\//g,"\\")),Q}function j(U,H){var Q=H?T:P,re="",Ee=U.scheme,Qe=U.authority,Me=U.path,Dn=U.query,Ei=U.fragment;if(Ee&&(re+=Ee,re+=":"),(Qe||Ee==="file")&&(re+=f,re+=f),Qe){var qn=Qe.indexOf("@");if(qn!==-1){var Ar=Qe.substr(0,qn);Qe=Qe.substr(qn+1),(qn=Ar.lastIndexOf(":"))===-1?re+=Q(Ar,!1,!1):(re+=Q(Ar.substr(0,qn),!1,!1),re+=":",re+=Q(Ar.substr(qn+1),!1,!0)),re+="@"}(qn=(Qe=Qe.toLowerCase()).lastIndexOf(":"))===-1?re+=Q(Qe,!1,!0):(re+=Q(Qe.substr(0,qn),!1,!0),re+=Qe.substr(qn))}if(Me){if(Me.length>=3&&Me.charCodeAt(0)===47&&Me.charCodeAt(2)===58)(Wn=Me.charCodeAt(1))>=65&&Wn<=90&&(Me="/".concat(String.fromCharCode(Wn+32),":").concat(Me.substr(3)));else if(Me.length>=2&&Me.charCodeAt(1)===58){var Wn;(Wn=Me.charCodeAt(0))>=65&&Wn<=90&&(Me="".concat(String.fromCharCode(Wn+32),":").concat(Me.substr(2)))}re+=Q(Me,!0,!1)}return Dn&&(re+="?",re+=Q(Dn,!1,!1)),Ei&&(re+="#",re+=H?Ei:P(Ei,!1,!1)),re}function q(U){try{return decodeURIComponent(U)}catch{return U.length>3?U.substr(0,3)+q(U.substr(3)):U}}var K=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function X(U){return U.match(K)?U.replace(K,function(H){return q(H)}):U}var z,B=t(470),fe=function(U,H,Q){if(Q||arguments.length===2)for(var re,Ee=0,Qe=H.length;Ee{"use strict";FD="Canceled",Ct=class extends Error{constructor(){super(FD),this.name=this.message}};Ih=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Ih.prototype);debugger}}});function Ay(n){try{return new H8.URL(n),!0}catch{return!1}}function Lh(n){return!(!n||!Ue(n.title)||!Ue(n.command)||n.command.length==0)}function Ny(n){return n!=null&&n.kind=="markdown"}function OD(n){return n&&typeof n.label=="string"}function B8(n){return!Array.isArray(n)&&Array.isArray(n.items)}function _n(n){return typeof n=="boolean"}function Ue(n){return typeof n=="string"}function Xt(n){return typeof n=="number"}function it(n){return typeof n=="function"}function St(n){return n!=null&&typeof n=="object"&&!Array.isArray(n)&&!(n instanceof RegExp)&&!(n instanceof Date)}var H8,Xe=D(()=>{"use strict";H8=require("url")});function Hy(n){return n?Array.isArray(n)?n.length==0:Object.keys(n).length==0:!0}function $e(n){return n??{}}function q8(n){let e={};return Object.entries(n).forEach(([t,i])=>{i!==void 0&&(e[t]=i)}),e}function Fh(n,e){return Object.entries(n).forEach(([t,i])=>{e(n,t),Array.isArray(i)?i.forEach(r=>{St(r)&&Fh(r,e)}):St(i)&&Fh(i,e)}),n}function Fi(n){if(!n||typeof n!="object"||n instanceof RegExp)return n;let e=Array.isArray(n)?[]:{};return Object.keys(n).forEach(t=>{n[t]&&typeof n[t]=="object"?e[t]=Fi(n[t]):e[t]=n[t]}),e}function En(n,e){return Xre.call(n,e)}function By(n){if(!n||typeof n!="object")return n;let e=[n];for(;e.length>0;){let t=e.shift();Object.freeze(t);for(let i of Object.keys(t)){let r=t[i];typeof r=="object"&&!Object.isFrozen(r)&&e.push(r)}}return n}function AD(n,e,t=!0){return St(n)?(St(e)&&Object.keys(e).forEach(i=>{i in n?t&&(St(n[i])&&St(e[i])?AD(n[i],e[i],t):n[i]=e[i]):n[i]=e[i]}),n):e}function Fe(n,e){if(n===e)return!0;if(n==null||e===null||e===void 0||typeof n!=typeof e||typeof n!="object"||Array.isArray(n)!==Array.isArray(e))return!1;let t,i;if(Array.isArray(n)){if(n.length!==e.length)return!1;for(t=0;t{"use strict";Xe();Xre=Object.prototype.hasOwnProperty});var Vo=v(BD=>{"use strict";Object.defineProperty(BD,"__esModule",{value:!0});var ND;function HD(){if(ND===void 0)throw new Error("No runtime abstraction layer installed");return ND}(function(n){function e(t){if(t===void 0)throw new Error("No runtime abstraction layer provided");ND=t}n.install=e})(HD||(HD={}));BD.default=HD});var qD=v(Mh=>{"use strict";Object.defineProperty(Mh,"__esModule",{value:!0});Mh.Disposable=void 0;var Gre;(function(n){function e(t){return{dispose:t}}n.create=e})(Gre=Mh.Disposable||(Mh.Disposable={}))});var W8=v(qy=>{"use strict";Object.defineProperty(qy,"__esModule",{value:!0});qy.AbstractMessageBuffer=void 0;var zre=13,Kre=10,Qre=`\r +`,WD=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let t=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(t),this._totalLength+=t.byteLength}tryReadHeaders(){if(this._chunks.length===0)return;let e=0,t=0,i=0,r=0;e:for(;tthis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let o=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(o)}if(this._chunks[0].byteLength>e){let o=this._chunks[0],s=this.asNative(o,e);return this._chunks[0]=o.slice(e),this._totalLength-=e,s}let t=this.allocNative(e),i=0,r=0;for(;e>0;){let o=this._chunks[r];if(o.byteLength>e){let s=o.slice(0,e);t.set(s,i),i+=e,this._chunks[r]=o.slice(e),this._totalLength-=e,e-=e}else t.set(o,i),i+=o.byteLength,this._chunks.shift(),this._totalLength-=o.byteLength,e-=o.byteLength}return t}};qy.AbstractMessageBuffer=WD});var J8=v(UD=>{"use strict";Object.defineProperty(UD,"__esModule",{value:!0});var Vre=Vo(),Y8=require("util"),pl=qD(),eoe=W8(),sc=class extends eoe.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return sc.emptyBuffer}fromString(e,t){return Buffer.from(e,t)}toString(e,t){return e instanceof Buffer?e.toString(t):new Y8.TextDecoder(t).decode(e)}asNative(e,t){return t===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,t):Buffer.from(e,0,t)}allocNative(e){return Buffer.allocUnsafe(e)}};sc.emptyBuffer=Buffer.allocUnsafe(0);var YD=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),pl.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),pl.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),pl.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),pl.Disposable.create(()=>this.stream.off("data",e))}},ZD=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),pl.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),pl.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),pl.Disposable.create(()=>this.stream.off("end",e))}write(e,t){return new Promise((i,r)=>{let o=s=>{s==null?i():r(s)};typeof e=="string"?this.stream.write(e,t,o):this.stream.write(e,o)})}end(){this.stream.end()}},Z8=Object.freeze({messageBuffer:Object.freeze({create:n=>new sc(n)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(n,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(n,void 0,0),e.charset))}catch(t){return Promise.reject(t)}}}),decoder:Object.freeze({name:"application/json",decode:(n,e)=>{try{return n instanceof Buffer?Promise.resolve(JSON.parse(n.toString(e.charset))):Promise.resolve(JSON.parse(new Y8.TextDecoder(e.charset).decode(n)))}catch(t){return Promise.reject(t)}}})}),stream:Object.freeze({asReadableStream:n=>new YD(n),asWritableStream:n=>new ZD(n)}),console,timer:Object.freeze({setTimeout(n,e,...t){let i=setTimeout(n,e,...t);return{dispose:()=>clearTimeout(i)}},setImmediate(n,...e){let t=setImmediate(n,...e);return{dispose:()=>clearImmediate(t)}},setInterval(n,e,...t){let i=setInterval(n,e,...t);return{dispose:()=>clearInterval(i)}}})});function JD(){return Z8}(function(n){function e(){Vre.default.install(Z8)}n.install=e})(JD||(JD={}));UD.default=JD});var ac=v(tn=>{"use strict";Object.defineProperty(tn,"__esModule",{value:!0});tn.stringArray=tn.array=tn.func=tn.error=tn.number=tn.string=tn.boolean=void 0;function toe(n){return n===!0||n===!1}tn.boolean=toe;function U8(n){return typeof n=="string"||n instanceof String}tn.string=U8;function ioe(n){return typeof n=="number"||n instanceof Number}tn.number=ioe;function noe(n){return n instanceof Error}tn.error=noe;function roe(n){return typeof n=="function"}tn.func=roe;function $8(n){return Array.isArray(n)}tn.array=$8;function ooe(n){return $8(n)&&n.every(e=>U8(e))}tn.stringArray=ooe});var fT=v(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.Message=Pe.NotificationType9=Pe.NotificationType8=Pe.NotificationType7=Pe.NotificationType6=Pe.NotificationType5=Pe.NotificationType4=Pe.NotificationType3=Pe.NotificationType2=Pe.NotificationType1=Pe.NotificationType0=Pe.NotificationType=Pe.RequestType9=Pe.RequestType8=Pe.RequestType7=Pe.RequestType6=Pe.RequestType5=Pe.RequestType4=Pe.RequestType3=Pe.RequestType2=Pe.RequestType1=Pe.RequestType=Pe.RequestType0=Pe.AbstractMessageSignature=Pe.ParameterStructures=Pe.ResponseError=Pe.ErrorCodes=void 0;var fl=ac(),X8;(function(n){n.ParseError=-32700,n.InvalidRequest=-32600,n.MethodNotFound=-32601,n.InvalidParams=-32602,n.InternalError=-32603,n.jsonrpcReservedErrorRangeStart=-32099,n.serverErrorStart=-32099,n.MessageWriteError=-32099,n.MessageReadError=-32098,n.PendingResponseRejected=-32097,n.ConnectionInactive=-32096,n.ServerNotInitialized=-32002,n.UnknownErrorCode=-32001,n.jsonrpcReservedErrorRangeEnd=-32e3,n.serverErrorEnd=-32e3})(X8=Pe.ErrorCodes||(Pe.ErrorCodes={}));var jh=class extends Error{constructor(e,t,i){super(t),this.code=fl.number(e)?e:X8.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,jh.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};Pe.ResponseError=jh;var Mi=class{constructor(e){this.kind=e}static is(e){return e===Mi.auto||e===Mi.byName||e===Mi.byPosition}toString(){return this.kind}};Pe.ParameterStructures=Mi;Mi.auto=new Mi("auto");Mi.byPosition=new Mi("byPosition");Mi.byName=new Mi("byName");var Zt=class{constructor(e,t){this.method=e,this.numberOfParams=t}get parameterStructures(){return Mi.auto}};Pe.AbstractMessageSignature=Zt;var $D=class extends Zt{constructor(e){super(e,0)}};Pe.RequestType0=$D;var XD=class extends Zt{constructor(e,t=Mi.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};Pe.RequestType=XD;var GD=class extends Zt{constructor(e,t=Mi.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};Pe.RequestType1=GD;var zD=class extends Zt{constructor(e){super(e,2)}};Pe.RequestType2=zD;var KD=class extends Zt{constructor(e){super(e,3)}};Pe.RequestType3=KD;var QD=class extends Zt{constructor(e){super(e,4)}};Pe.RequestType4=QD;var VD=class extends Zt{constructor(e){super(e,5)}};Pe.RequestType5=VD;var eT=class extends Zt{constructor(e){super(e,6)}};Pe.RequestType6=eT;var tT=class extends Zt{constructor(e){super(e,7)}};Pe.RequestType7=tT;var iT=class extends Zt{constructor(e){super(e,8)}};Pe.RequestType8=iT;var nT=class extends Zt{constructor(e){super(e,9)}};Pe.RequestType9=nT;var rT=class extends Zt{constructor(e,t=Mi.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};Pe.NotificationType=rT;var oT=class extends Zt{constructor(e){super(e,0)}};Pe.NotificationType0=oT;var sT=class extends Zt{constructor(e,t=Mi.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};Pe.NotificationType1=sT;var aT=class extends Zt{constructor(e){super(e,2)}};Pe.NotificationType2=aT;var lT=class extends Zt{constructor(e){super(e,3)}};Pe.NotificationType3=lT;var uT=class extends Zt{constructor(e){super(e,4)}};Pe.NotificationType4=uT;var cT=class extends Zt{constructor(e){super(e,5)}};Pe.NotificationType5=cT;var dT=class extends Zt{constructor(e){super(e,6)}};Pe.NotificationType6=dT;var hT=class extends Zt{constructor(e){super(e,7)}};Pe.NotificationType7=hT;var gT=class extends Zt{constructor(e){super(e,8)}};Pe.NotificationType8=gT;var pT=class extends Zt{constructor(e){super(e,9)}};Pe.NotificationType9=pT;var soe;(function(n){function e(r){let o=r;return o&&fl.string(o.method)&&(fl.string(o.id)||fl.number(o.id))}n.isRequest=e;function t(r){let o=r;return o&&fl.string(o.method)&&r.id===void 0}n.isNotification=t;function i(r){let o=r;return o&&(o.result!==void 0||!!o.error)&&(fl.string(o.id)||fl.number(o.id)||o.id===null)}n.isResponse=i})(soe=Pe.Message||(Pe.Message={}))});var bT=v(es=>{"use strict";var G8;Object.defineProperty(es,"__esModule",{value:!0});es.LRUCache=es.LinkedMap=es.Touch=void 0;var yn;(function(n){n.None=0,n.First=1,n.AsOld=n.First,n.Last=2,n.AsNew=n.Last})(yn=es.Touch||(es.Touch={}));var Wy=class{constructor(){this[G8]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var e;return(e=this._head)==null?void 0:e.value}get last(){var e;return(e=this._tail)==null?void 0:e.value}has(e){return this._map.has(e)}get(e,t=yn.None){let i=this._map.get(e);if(!!i)return t!==yn.None&&this.touch(i,t),i.value}set(e,t,i=yn.None){let r=this._map.get(e);if(r)r.value=t,i!==yn.None&&this.touch(r,i);else{switch(r={key:e,value:t,next:void 0,previous:void 0},i){case yn.None:this.addItemLast(r);break;case yn.First:this.addItemFirst(r);break;case yn.Last:this.addItemLast(r);break;default:this.addItemLast(r);break}this._map.set(e,r),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(!!t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let i=this._state,r=this._head;for(;r;){if(t?e.bind(t)(r.value,r.key,this):e(r.value,r.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");r=r.next}}keys(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let r={value:t.key,done:!1};return t=t.next,r}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let r={value:t.value,done:!1};return t=t.next,r}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let r={value:[t.key,t.value],done:!1};return t=t.next,r}else return{value:void 0,done:!0}}};return i}[(G8=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,i=e.previous;if(!t||!i)throw new Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==yn.First&&t!==yn.Last)){if(t===yn.First){if(e===this._head)return;let i=e.next,r=e.previous;e===this._tail?(r.next=void 0,this._tail=r):(i.previous=r,r.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===yn.Last){if(e===this._tail)return;let i=e.next,r=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=r,r.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){this.clear();for(let[t,i]of e)this.set(t,i)}};es.LinkedMap=Wy;var mT=class extends Wy{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,t=yn.AsNew){return super.get(e,t)}peek(e){return super.get(e,yn.None)}set(e,t){return super.set(e,t,yn.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};es.LRUCache=mT});var uc=v(ml=>{"use strict";Object.defineProperty(ml,"__esModule",{value:!0});ml.Emitter=ml.Event=void 0;var aoe=Vo(),loe;(function(n){let e={dispose(){}};n.None=function(){return e}})(loe=ml.Event||(ml.Event={}));var yT=class{add(e,t=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let i=!1;for(let r=0,o=this._callbacks.length;r{this._callbacks||(this._callbacks=new yT),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let r={dispose:()=>{!this._callbacks||(this._callbacks.remove(e,t),r.dispose=lc._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(r),r}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};ml.Emitter=lc;lc._noop=function(){}});var CT=v(bl=>{"use strict";Object.defineProperty(bl,"__esModule",{value:!0});bl.CancellationTokenSource=bl.CancellationToken=void 0;var uoe=Vo(),coe=ac(),vT=uc(),wT;(function(n){n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:vT.Event.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:vT.Event.None});function e(t){let i=t;return i&&(i===n.None||i===n.Cancelled||coe.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}n.is=e})(wT=bl.CancellationToken||(bl.CancellationToken={}));var doe=Object.freeze(function(n,e){let t=(0,uoe.default)().timer.setTimeout(n.bind(e),0);return{dispose(){t.dispose()}}}),Yy=class{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?doe:(this._emitter||(this._emitter=new vT.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},xT=class{get token(){return this._token||(this._token=new Yy),this._token}cancel(){this._token?this._token.cancel():this._token=wT.Cancelled}dispose(){this._token?this._token instanceof Yy&&this._token.dispose():this._token=wT.None}};bl.CancellationTokenSource=xT});var z8=v(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});ts.ReadableStreamMessageReader=ts.AbstractMessageReader=ts.MessageReader=void 0;var DT=Vo(),cc=ac(),ST=uc(),hoe;(function(n){function e(t){let i=t;return i&&cc.func(i.listen)&&cc.func(i.dispose)&&cc.func(i.onError)&&cc.func(i.onClose)&&cc.func(i.onPartialMessage)}n.is=e})(hoe=ts.MessageReader||(ts.MessageReader={}));var Zy=class{constructor(){this.errorEmitter=new ST.Emitter,this.closeEmitter=new ST.Emitter,this.partialMessageEmitter=new ST.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${cc.string(e.message)?e.message:"unknown"}`)}};ts.AbstractMessageReader=Zy;var TT;(function(n){function e(t){let i,r,o,s=new Map,a,l=new Map;if(t===void 0||typeof t=="string")i=t??"utf-8";else{if(i=t.charset??"utf-8",t.contentDecoder!==void 0&&(o=t.contentDecoder,s.set(o.name,o)),t.contentDecoders!==void 0)for(let u of t.contentDecoders)s.set(u.name,u);if(t.contentTypeDecoder!==void 0&&(a=t.contentTypeDecoder,l.set(a.name,a)),t.contentTypeDecoders!==void 0)for(let u of t.contentTypeDecoders)l.set(u.name,u)}return a===void 0&&(a=(0,DT.default)().applicationJson.decoder,l.set(a.name,a)),{charset:i,contentDecoder:o,contentDecoders:s,contentTypeDecoder:a,contentTypeDecoders:l}}n.fromOptions=e})(TT||(TT={}));var kT=class extends Zy{constructor(e,t){super(),this.readable=e,this.options=TT.fromOptions(t),this.buffer=(0,DT.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let t=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),t}onData(e){for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let r=this.buffer.tryReadHeaders();if(!r)return;let o=r.get("Content-Length");if(!o)throw new Error("Header must provide a Content-Length property.");let s=parseInt(o);if(isNaN(s))throw new Error("Content-Length value must be a number.");this.nextMessageLength=s}let t=this.buffer.tryReadBody(this.nextMessageLength);if(t===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1;let i;this.options.contentDecoder!==void 0?i=this.options.contentDecoder.decode(t):i=Promise.resolve(t),i.then(r=>{this.options.contentTypeDecoder.decode(r,this.options).then(o=>{this.callback(o)},o=>{this.fireError(o)})},r=>{this.fireError(r)})}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,DT.default)().timer.setTimeout((e,t)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:t}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};ts.ReadableStreamMessageReader=kT});var K8=v(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.Semaphore=void 0;var goe=Vo(),PT=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,i)=>{this._waiting.push({thunk:e,resolve:t,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,goe.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let t=e.thunk();t instanceof Promise?t.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}};Jy.Semaphore=PT});var t2=v(is=>{"use strict";Object.defineProperty(is,"__esModule",{value:!0});is.WriteableStreamMessageWriter=is.AbstractMessageWriter=is.MessageWriter=void 0;var Q8=Vo(),Oh=ac(),poe=K8(),V8=uc(),foe="Content-Length: ",e2=`\r +`,moe;(function(n){function e(t){let i=t;return i&&Oh.func(i.dispose)&&Oh.func(i.onClose)&&Oh.func(i.onError)&&Oh.func(i.write)}n.is=e})(moe=is.MessageWriter||(is.MessageWriter={}));var Uy=class{constructor(){this.errorEmitter=new V8.Emitter,this.closeEmitter=new V8.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,t,i){this.errorEmitter.fire([this.asError(e),t,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${Oh.string(e.message)?e.message:"unknown"}`)}};is.AbstractMessageWriter=Uy;var RT;(function(n){function e(t){return t===void 0||typeof t=="string"?{charset:t??"utf-8",contentTypeEncoder:(0,Q8.default)().applicationJson.encoder}:{charset:t.charset??"utf-8",contentEncoder:t.contentEncoder,contentTypeEncoder:t.contentTypeEncoder??(0,Q8.default)().applicationJson.encoder}}n.fromOptions=e})(RT||(RT={}));var _T=class extends Uy{constructor(e,t){super(),this.writable=e,this.options=RT.fromOptions(t),this.errorCount=0,this.writeSemaphore=new poe.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let r=[];return r.push(foe,i.byteLength.toString(),e2),r.push(e2),this.doWrite(e,r,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,t,i){try{return await this.writable.write(t.join(""),"ascii"),this.writable.write(i)}catch(r){return this.handleError(r,e),Promise.reject(r)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){this.writable.end()}};is.WriteableStreamMessageWriter=_T});var a2=v(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.createMessageConnection=Oe.ConnectionOptions=Oe.CancellationStrategy=Oe.CancellationSenderStrategy=Oe.CancellationReceiverStrategy=Oe.ConnectionStrategy=Oe.ConnectionError=Oe.ConnectionErrors=Oe.LogTraceNotification=Oe.SetTraceNotification=Oe.TraceFormat=Oe.TraceValues=Oe.Trace=Oe.NullLogger=Oe.ProgressType=Oe.ProgressToken=void 0;var i2=Vo(),ki=ac(),qe=fT(),n2=bT(),Ah=uc(),ET=CT(),Hh;(function(n){n.type=new qe.NotificationType("$/cancelRequest")})(Hh||(Hh={}));var r2;(function(n){function e(t){return typeof t=="string"||typeof t=="number"}n.is=e})(r2=Oe.ProgressToken||(Oe.ProgressToken={}));var Nh;(function(n){n.type=new qe.NotificationType("$/progress")})(Nh||(Nh={}));var IT=class{constructor(){}};Oe.ProgressType=IT;var LT;(function(n){function e(t){return ki.func(t)}n.is=e})(LT||(LT={}));Oe.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var Dt;(function(n){n[n.Off=0]="Off",n[n.Messages=1]="Messages",n[n.Compact=2]="Compact",n[n.Verbose=3]="Verbose"})(Dt=Oe.Trace||(Oe.Trace={}));var boe;(function(n){n.Off="off",n.Messages="messages",n.Compact="compact",n.Verbose="verbose"})(boe=Oe.TraceValues||(Oe.TraceValues={}));(function(n){function e(i){if(!ki.string(i))return n.Off;switch(i=i.toLowerCase(),i){case"off":return n.Off;case"messages":return n.Messages;case"compact":return n.Compact;case"verbose":return n.Verbose;default:return n.Off}}n.fromString=e;function t(i){switch(i){case n.Off:return"off";case n.Messages:return"messages";case n.Compact:return"compact";case n.Verbose:return"verbose";default:return"off"}}n.toString=t})(Dt=Oe.Trace||(Oe.Trace={}));var Zr;(function(n){n.Text="text",n.JSON="json"})(Zr=Oe.TraceFormat||(Oe.TraceFormat={}));(function(n){function e(t){return ki.string(t)?(t=t.toLowerCase(),t==="json"?n.JSON:n.Text):n.Text}n.fromString=e})(Zr=Oe.TraceFormat||(Oe.TraceFormat={}));var o2;(function(n){n.type=new qe.NotificationType("$/setTrace")})(o2=Oe.SetTraceNotification||(Oe.SetTraceNotification={}));var FT;(function(n){n.type=new qe.NotificationType("$/logTrace")})(FT=Oe.LogTraceNotification||(Oe.LogTraceNotification={}));var $y;(function(n){n[n.Closed=1]="Closed",n[n.Disposed=2]="Disposed",n[n.AlreadyListening=3]="AlreadyListening"})($y=Oe.ConnectionErrors||(Oe.ConnectionErrors={}));var Ks=class extends Error{constructor(e,t){super(t),this.code=e,Object.setPrototypeOf(this,Ks.prototype)}};Oe.ConnectionError=Ks;var s2;(function(n){function e(t){let i=t;return i&&ki.func(i.cancelUndispatched)}n.is=e})(s2=Oe.ConnectionStrategy||(Oe.ConnectionStrategy={}));var MT;(function(n){n.Message=Object.freeze({createCancellationTokenSource(t){return new ET.CancellationTokenSource}});function e(t){let i=t;return i&&ki.func(i.createCancellationTokenSource)}n.is=e})(MT=Oe.CancellationReceiverStrategy||(Oe.CancellationReceiverStrategy={}));var jT;(function(n){n.Message=Object.freeze({sendCancellation(t,i){return t.sendNotification(Hh.type,{id:i})},cleanup(t){}});function e(t){let i=t;return i&&ki.func(i.sendCancellation)&&ki.func(i.cleanup)}n.is=e})(jT=Oe.CancellationSenderStrategy||(Oe.CancellationSenderStrategy={}));var OT;(function(n){n.Message=Object.freeze({receiver:MT.Message,sender:jT.Message});function e(t){let i=t;return i&&MT.is(i.receiver)&&jT.is(i.sender)}n.is=e})(OT=Oe.CancellationStrategy||(Oe.CancellationStrategy={}));var yoe;(function(n){function e(t){let i=t;return i&&(OT.is(i.cancellationStrategy)||s2.is(i.connectionStrategy))}n.is=e})(yoe=Oe.ConnectionOptions||(Oe.ConnectionOptions={}));var Jr;(function(n){n[n.New=1]="New",n[n.Listening=2]="Listening",n[n.Closed=3]="Closed",n[n.Disposed=4]="Disposed"})(Jr||(Jr={}));function voe(n,e,t,i){let r=t!==void 0?t:Oe.NullLogger,o=0,s=0,a=0,l="2.0",u,c=new Map,d,h=new Map,g=new Map,f,m=new n2.LinkedMap,y=new Map,w=new Set,x=new Map,C=Dt.Off,P=Zr.Text,T,O=Jr.New,j=new Ah.Emitter,q=new Ah.Emitter,K=new Ah.Emitter,X=new Ah.Emitter,z=new Ah.Emitter,B=i&&i.cancellationStrategy?i.cancellationStrategy:OT.Message;function fe(E){if(E===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+E.toString()}function ve(E){return E===null?"res-unknown-"+(++a).toString():"res-"+E.toString()}function Le(){return"not-"+(++s).toString()}function U(E,G){qe.Message.isRequest(G)?E.set(fe(G.id),G):qe.Message.isResponse(G)?E.set(ve(G.id),G):E.set(Le(),G)}function H(E){}function Q(){return O===Jr.Listening}function re(){return O===Jr.Closed}function Ee(){return O===Jr.Disposed}function Qe(){(O===Jr.New||O===Jr.Listening)&&(O=Jr.Closed,q.fire(void 0))}function Me(E){j.fire([E,void 0,void 0])}function Dn(E){j.fire(E)}n.onClose(Qe),n.onError(Me),e.onClose(Qe),e.onError(Dn);function Ei(){f||m.size===0||(f=(0,i2.default)().timer.setImmediate(()=>{f=void 0,qn()}))}function qn(){if(m.size===0)return;let E=m.shift();try{qe.Message.isRequest(E)?Wn(E):qe.Message.isNotification(E)?et(E):qe.Message.isResponse(E)?lt(E):tt(E)}finally{Ei()}}let Ar=E=>{try{if(qe.Message.isNotification(E)&&E.method===Hh.type.method){let G=E.params.id,ue=fe(G),De=m.get(ue);if(qe.Message.isRequest(De)){let Yt=i==null?void 0:i.connectionStrategy,Ht=Yt&&Yt.cancelUndispatched?Yt.cancelUndispatched(De,H):void 0;if(Ht&&(Ht.error!==void 0||Ht.result!==void 0)){m.delete(ue),x.delete(G),Ht.id=De.id,Tn(Ht,E.method,Date.now()),e.write(Ht).catch(()=>r.error("Sending response for canceled message failed."));return}}let _t=x.get(G);if(_t!==void 0){_t.cancel(),$d(E);return}else w.add(G)}U(m,E)}finally{Ei()}};function Wn(E){if(Ee())return;function G(dt,Qt,yt){let Si={jsonrpc:l,id:E.id};dt instanceof qe.ResponseError?Si.error=dt.toJson():Si.result=dt===void 0?null:dt,Tn(Si,Qt,yt),e.write(Si).catch(()=>r.error("Sending response failed."))}function ue(dt,Qt,yt){let Si={jsonrpc:l,id:E.id,error:dt.toJson()};Tn(Si,Qt,yt),e.write(Si).catch(()=>r.error("Sending response failed."))}function De(dt,Qt,yt){dt===void 0&&(dt=null);let Si={jsonrpc:l,id:E.id,result:dt};Tn(Si,Qt,yt),e.write(Si).catch(()=>r.error("Sending response failed."))}Yn(E);let _t=c.get(E.method),Yt,Ht;_t&&(Yt=_t.type,Ht=_t.handler);let Ii=Date.now();if(Ht||u){let dt=E.id??String(Date.now()),Qt=B.receiver.createCancellationTokenSource(dt);E.id!==null&&w.has(E.id)&&Qt.cancel(),E.id!==null&&x.set(dt,Qt);try{let yt;if(Ht)if(E.params===void 0){if(Yt!==void 0&&Yt.numberOfParams!==0){ue(new qe.ResponseError(qe.ErrorCodes.InvalidParams,`Request ${E.method} defines ${Yt.numberOfParams} params but received none.`),E.method,Ii);return}yt=Ht(Qt.token)}else if(Array.isArray(E.params)){if(Yt!==void 0&&Yt.parameterStructures===qe.ParameterStructures.byName){ue(new qe.ResponseError(qe.ErrorCodes.InvalidParams,`Request ${E.method} defines parameters by name but received parameters by position`),E.method,Ii);return}yt=Ht(...E.params,Qt.token)}else{if(Yt!==void 0&&Yt.parameterStructures===qe.ParameterStructures.byPosition){ue(new qe.ResponseError(qe.ErrorCodes.InvalidParams,`Request ${E.method} defines parameters by position but received parameters by name`),E.method,Ii);return}yt=Ht(E.params,Qt.token)}else u&&(yt=u(E.method,E.params,Qt.token));let Si=yt;yt?Si.then?Si.then(kn=>{x.delete(dt),G(kn,E.method,Ii)},kn=>{x.delete(dt),kn instanceof qe.ResponseError?ue(kn,E.method,Ii):kn&&ki.string(kn.message)?ue(new qe.ResponseError(qe.ErrorCodes.InternalError,`Request ${E.method} failed with message: ${kn.message}`),E.method,Ii):ue(new qe.ResponseError(qe.ErrorCodes.InternalError,`Request ${E.method} failed unexpectedly without providing any details.`),E.method,Ii)}):(x.delete(dt),G(yt,E.method,Ii)):(x.delete(dt),De(yt,E.method,Ii))}catch(yt){x.delete(dt),yt instanceof qe.ResponseError?G(yt,E.method,Ii):yt&&ki.string(yt.message)?ue(new qe.ResponseError(qe.ErrorCodes.InternalError,`Request ${E.method} failed with message: ${yt.message}`),E.method,Ii):ue(new qe.ResponseError(qe.ErrorCodes.InternalError,`Request ${E.method} failed unexpectedly without providing any details.`),E.method,Ii)}}else ue(new qe.ResponseError(qe.ErrorCodes.MethodNotFound,`Unhandled method ${E.method}`),E.method,Ii)}function lt(E){if(!Ee())if(E.id===null)E.error?r.error(`Received response message without id: Error is: +${JSON.stringify(E.error,void 0,4)}`):r.error("Received response message without id. No further error information provided.");else{let G=E.id,ue=y.get(G);if(Eb(E,ue),ue!==void 0){y.delete(G);try{if(E.error){let De=E.error,_t=new qe.ResponseError(De.code,De.message,De.data);ue.stack&&(_t.stack=ue.stack),ue.reject(_t)}else if(E.result!==void 0)ue.resolve(E.result);else throw new Error("Should never happen.")}catch(De){De.message?r.error(`Response handler '${ue.method}' failed with message: ${De.message}`):r.error(`Response handler '${ue.method}' failed unexpectedly.`)}}}}function et(E){if(Ee())return;let G,ue;if(E.method===Hh.type.method){let De=E.params.id;w.delete(De),$d(E);return}else{let De=h.get(E.method);De&&(ue=De.handler,G=De.type)}if(ue||d)try{if($d(E),ue)if(E.params===void 0)G!==void 0&&G.numberOfParams!==0&&G.parameterStructures!==qe.ParameterStructures.byName&&r.error(`Notification ${E.method} defines ${G.numberOfParams} params but received none.`),ue();else if(Array.isArray(E.params)){let De=E.params;E.method===Nh.type.method&&De.length===2&&r2.is(De[0])?ue({token:De[0],value:De[1]}):(G!==void 0&&(G.parameterStructures===qe.ParameterStructures.byName&&r.error(`Notification ${E.method} defines parameters by name but received parameters by position`),G.numberOfParams!==E.params.length&&r.error(`Notification ${E.method} defines ${G.numberOfParams} params but received ${De.length} arguments`)),ue(...De))}else G!==void 0&&G.parameterStructures===qe.ParameterStructures.byPosition&&r.error(`Notification ${E.method} defines parameters by position but received parameters by name`),ue(E.params);else d&&d(E.method,E.params)}catch(De){De.message?r.error(`Notification handler '${E.method}' failed with message: ${De.message}`):r.error(`Notification handler '${E.method}' failed unexpectedly.`)}else K.fire(E)}function tt(E){if(!E){r.error("Received empty message.");return}r.error(`Received message which is neither a response nor a notification message: +${JSON.stringify(E,null,4)}`);let G=E;if(ki.string(G.id)||ki.number(G.id)){let ue=G.id,De=y.get(ue);De&&De.reject(new Error("The received response has neither a result nor an error property."))}}function Ke(E){if(E!=null)switch(C){case Dt.Verbose:return JSON.stringify(E,null,4);case Dt.Compact:return JSON.stringify(E);default:return}}function Ci(E){if(!(C===Dt.Off||!T))if(P===Zr.Text){let G;(C===Dt.Verbose||C===Dt.Compact)&&E.params&&(G=`Params: ${Ke(E.params)} + +`),T.log(`Sending request '${E.method} - (${E.id})'.`,G)}else Iu("send-request",E)}function Nr(E){if(!(C===Dt.Off||!T))if(P===Zr.Text){let G;(C===Dt.Verbose||C===Dt.Compact)&&(E.params?G=`Params: ${Ke(E.params)} + +`:G=`No parameters provided. + +`),T.log(`Sending notification '${E.method}'.`,G)}else Iu("send-notification",E)}function Tn(E,G,ue){if(!(C===Dt.Off||!T))if(P===Zr.Text){let De;(C===Dt.Verbose||C===Dt.Compact)&&(E.error&&E.error.data?De=`Error data: ${Ke(E.error.data)} + +`:E.result?De=`Result: ${Ke(E.result)} + +`:E.error===void 0&&(De=`No result returned. + +`)),T.log(`Sending response '${G} - (${E.id})'. Processing request took ${Date.now()-ue}ms`,De)}else Iu("send-response",E)}function Yn(E){if(!(C===Dt.Off||!T))if(P===Zr.Text){let G;(C===Dt.Verbose||C===Dt.Compact)&&E.params&&(G=`Params: ${Ke(E.params)} + +`),T.log(`Received request '${E.method} - (${E.id})'.`,G)}else Iu("receive-request",E)}function $d(E){if(!(C===Dt.Off||!T||E.method===FT.type.method))if(P===Zr.Text){let G;(C===Dt.Verbose||C===Dt.Compact)&&(E.params?G=`Params: ${Ke(E.params)} + +`:G=`No parameters provided. + +`),T.log(`Received notification '${E.method}'.`,G)}else Iu("receive-notification",E)}function Eb(E,G){if(!(C===Dt.Off||!T))if(P===Zr.Text){let ue;if((C===Dt.Verbose||C===Dt.Compact)&&(E.error&&E.error.data?ue=`Error data: ${Ke(E.error.data)} + +`:E.result?ue=`Result: ${Ke(E.result)} + +`:E.error===void 0&&(ue=`No result returned. + +`)),G){let De=E.error?` Request failed: ${E.error.message} (${E.error.code}).`:"";T.log(`Received response '${G.method} - (${E.id})' in ${Date.now()-G.timerStart}ms.${De}`,ue)}else T.log(`Received response ${E.id} without active response promise.`,ue)}else Iu("receive-response",E)}function Iu(E,G){if(!T||C===Dt.Off)return;let ue={isLSPMessage:!0,type:E,message:G,timestamp:Date.now()};T.log(ue)}function Xd(){if(re())throw new Ks($y.Closed,"Connection is closed.");if(Ee())throw new Ks($y.Disposed,"Connection is disposed.")}function yQ(){if(Q())throw new Ks($y.AlreadyListening,"Connection is already listening")}function vQ(){if(!Q())throw new Error("Call listen() first.")}function Gd(E){return E===void 0?null:E}function xI(E){if(E!==null)return E}function CI(E){return E!=null&&!Array.isArray(E)&&typeof E=="object"}function MS(E,G){switch(E){case qe.ParameterStructures.auto:return CI(G)?xI(G):[Gd(G)];case qe.ParameterStructures.byName:if(!CI(G))throw new Error("Received parameters by name but param is not an object literal.");return xI(G);case qe.ParameterStructures.byPosition:return[Gd(G)];default:throw new Error(`Unknown parameter structure ${E.toString()}`)}}function SI(E,G){let ue,De=E.numberOfParams;switch(De){case 0:ue=void 0;break;case 1:ue=MS(E.parameterStructures,G[0]);break;default:ue=[];for(let _t=0;_t{Xd();let ue,De;if(ki.string(E)){ue=E;let Yt=G[0],Ht=0,Ii=qe.ParameterStructures.auto;qe.ParameterStructures.is(Yt)&&(Ht=1,Ii=Yt);let dt=G.length,Qt=dt-Ht;switch(Qt){case 0:De=void 0;break;case 1:De=MS(Ii,G[Ht]);break;default:if(Ii===qe.ParameterStructures.byName)throw new Error(`Received ${Qt} parameters for 'by Name' notification parameter structure.`);De=G.slice(Ht,dt).map(yt=>Gd(yt));break}}else{let Yt=G;ue=E.method,De=SI(E,Yt)}let _t={jsonrpc:l,method:ue,params:De};return Nr(_t),e.write(_t).catch(()=>r.error("Sending notification failed."))},onNotification:(E,G)=>{Xd();let ue;return ki.func(E)?d=E:G&&(ki.string(E)?(ue=E,h.set(E,{type:void 0,handler:G})):(ue=E.method,h.set(E.method,{type:E,handler:G}))),{dispose:()=>{ue!==void 0?h.delete(ue):d=void 0}}},onProgress:(E,G,ue)=>{if(g.has(G))throw new Error(`Progress handler for token ${G} already registered`);return g.set(G,ue),{dispose:()=>{g.delete(G)}}},sendProgress:(E,G,ue)=>Lu.sendNotification(Nh.type,{token:G,value:ue}),onUnhandledProgress:X.event,sendRequest:(E,...G)=>{Xd(),vQ();let ue,De,_t;if(ki.string(E)){ue=E;let dt=G[0],Qt=G[G.length-1],yt=0,Si=qe.ParameterStructures.auto;qe.ParameterStructures.is(dt)&&(yt=1,Si=dt);let kn=G.length;ET.CancellationToken.is(Qt)&&(kn=kn-1,_t=Qt);let Hs=kn-yt;switch(Hs){case 0:De=void 0;break;case 1:De=MS(Si,G[yt]);break;default:if(Si===qe.ParameterStructures.byName)throw new Error(`Received ${Hs} parameters for 'by Name' request parameter structure.`);De=G.slice(yt,kn).map(Bs=>Gd(Bs));break}}else{let dt=G;ue=E.method,De=SI(E,dt);let Qt=E.numberOfParams;_t=ET.CancellationToken.is(dt[Qt])?dt[Qt]:void 0}let Yt=o++,Ht;return _t&&(Ht=_t.onCancellationRequested(()=>{let dt=B.sender.sendCancellation(Lu,Yt);return dt===void 0?(r.log(`Received no promise from cancellation strategy when cancelling id ${Yt}`),Promise.resolve()):dt.catch(()=>{r.log(`Sending cancellation messages for id ${Yt} failed`)})})),new Promise((dt,Qt)=>{let yt={jsonrpc:l,id:Yt,method:ue,params:De},Si=Bs=>{dt(Bs),B.sender.cleanup(Yt),Ht==null||Ht.dispose()},kn=Bs=>{Qt(Bs),B.sender.cleanup(Yt),Ht==null||Ht.dispose()},Hs={method:ue,timerStart:Date.now(),resolve:Si,reject:kn};Error.captureStackTrace(Hs),Ci(yt);try{e.write(yt).catch(()=>r.error("Sending request failed."))}catch(Bs){Hs.reject(new qe.ResponseError(qe.ErrorCodes.MessageWriteError,Bs.message?Bs.message:"Unknown reason")),Hs=null}Hs&&y.set(Yt,Hs)})},onRequest:(E,G)=>{Xd();let ue=null;return LT.is(E)?(ue=void 0,u=E):ki.string(E)?(ue=null,G!==void 0&&(ue=E,c.set(E,{handler:G,type:void 0}))):G!==void 0&&(ue=E.method,c.set(E.method,{type:E,handler:G})),{dispose:()=>{ue!==null&&(ue!==void 0?c.delete(ue):u=void 0)}}},hasPendingResponse:()=>y.size>0,trace:async(E,G,ue)=>{let De=!1,_t=Zr.Text;ue!==void 0&&(ki.boolean(ue)?De=ue:(De=ue.sendNotification||!1,_t=ue.traceFormat||Zr.Text)),C=E,P=_t,C===Dt.Off?T=void 0:T=G,De&&!re()&&!Ee()&&await Lu.sendNotification(o2.type,{value:Dt.toString(E)})},onError:j.event,onClose:q.event,onUnhandledNotification:K.event,onDispose:z.event,end:()=>{e.end()},dispose:()=>{if(Ee())return;O=Jr.Disposed,z.fire(void 0);let E=new qe.ResponseError(qe.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let G of y.values())G.reject(E);y=new Map,x=new Map,w=new Set,m=new n2.LinkedMap,ki.func(e.dispose)&&e.dispose(),ki.func(n.dispose)&&n.dispose()},listen:()=>{Xd(),yQ(),O=Jr.Listening,n.listen(Ar)},inspect:()=>{(0,i2.default)().console.log("inspect")}};return Lu.onNotification(FT.type,E=>{if(C===Dt.Off||!T)return;let G=C===Dt.Verbose||C===Dt.Compact;T.log(E.message,G?E.verbose:void 0)}),Lu.onNotification(Nh.type,E=>{let G=g.get(E.token);G?G(E.value):X.fire(E)}),Lu}Oe.createMessageConnection=voe});var BT=v(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.TraceFormat=Z.TraceValues=Z.Trace=Z.ProgressType=Z.ProgressToken=Z.createMessageConnection=Z.NullLogger=Z.ConnectionOptions=Z.ConnectionStrategy=Z.WriteableStreamMessageWriter=Z.AbstractMessageWriter=Z.MessageWriter=Z.ReadableStreamMessageReader=Z.AbstractMessageReader=Z.MessageReader=Z.CancellationToken=Z.CancellationTokenSource=Z.Emitter=Z.Event=Z.Disposable=Z.LRUCache=Z.Touch=Z.LinkedMap=Z.ParameterStructures=Z.NotificationType9=Z.NotificationType8=Z.NotificationType7=Z.NotificationType6=Z.NotificationType5=Z.NotificationType4=Z.NotificationType3=Z.NotificationType2=Z.NotificationType1=Z.NotificationType0=Z.NotificationType=Z.ErrorCodes=Z.ResponseError=Z.RequestType9=Z.RequestType8=Z.RequestType7=Z.RequestType6=Z.RequestType5=Z.RequestType4=Z.RequestType3=Z.RequestType2=Z.RequestType1=Z.RequestType0=Z.RequestType=Z.Message=Z.RAL=void 0;Z.CancellationStrategy=Z.CancellationSenderStrategy=Z.CancellationReceiverStrategy=Z.ConnectionError=Z.ConnectionErrors=Z.LogTraceNotification=Z.SetTraceNotification=void 0;var Bt=fT();Object.defineProperty(Z,"Message",{enumerable:!0,get:function(){return Bt.Message}});Object.defineProperty(Z,"RequestType",{enumerable:!0,get:function(){return Bt.RequestType}});Object.defineProperty(Z,"RequestType0",{enumerable:!0,get:function(){return Bt.RequestType0}});Object.defineProperty(Z,"RequestType1",{enumerable:!0,get:function(){return Bt.RequestType1}});Object.defineProperty(Z,"RequestType2",{enumerable:!0,get:function(){return Bt.RequestType2}});Object.defineProperty(Z,"RequestType3",{enumerable:!0,get:function(){return Bt.RequestType3}});Object.defineProperty(Z,"RequestType4",{enumerable:!0,get:function(){return Bt.RequestType4}});Object.defineProperty(Z,"RequestType5",{enumerable:!0,get:function(){return Bt.RequestType5}});Object.defineProperty(Z,"RequestType6",{enumerable:!0,get:function(){return Bt.RequestType6}});Object.defineProperty(Z,"RequestType7",{enumerable:!0,get:function(){return Bt.RequestType7}});Object.defineProperty(Z,"RequestType8",{enumerable:!0,get:function(){return Bt.RequestType8}});Object.defineProperty(Z,"RequestType9",{enumerable:!0,get:function(){return Bt.RequestType9}});Object.defineProperty(Z,"ResponseError",{enumerable:!0,get:function(){return Bt.ResponseError}});Object.defineProperty(Z,"ErrorCodes",{enumerable:!0,get:function(){return Bt.ErrorCodes}});Object.defineProperty(Z,"NotificationType",{enumerable:!0,get:function(){return Bt.NotificationType}});Object.defineProperty(Z,"NotificationType0",{enumerable:!0,get:function(){return Bt.NotificationType0}});Object.defineProperty(Z,"NotificationType1",{enumerable:!0,get:function(){return Bt.NotificationType1}});Object.defineProperty(Z,"NotificationType2",{enumerable:!0,get:function(){return Bt.NotificationType2}});Object.defineProperty(Z,"NotificationType3",{enumerable:!0,get:function(){return Bt.NotificationType3}});Object.defineProperty(Z,"NotificationType4",{enumerable:!0,get:function(){return Bt.NotificationType4}});Object.defineProperty(Z,"NotificationType5",{enumerable:!0,get:function(){return Bt.NotificationType5}});Object.defineProperty(Z,"NotificationType6",{enumerable:!0,get:function(){return Bt.NotificationType6}});Object.defineProperty(Z,"NotificationType7",{enumerable:!0,get:function(){return Bt.NotificationType7}});Object.defineProperty(Z,"NotificationType8",{enumerable:!0,get:function(){return Bt.NotificationType8}});Object.defineProperty(Z,"NotificationType9",{enumerable:!0,get:function(){return Bt.NotificationType9}});Object.defineProperty(Z,"ParameterStructures",{enumerable:!0,get:function(){return Bt.ParameterStructures}});var AT=bT();Object.defineProperty(Z,"LinkedMap",{enumerable:!0,get:function(){return AT.LinkedMap}});Object.defineProperty(Z,"LRUCache",{enumerable:!0,get:function(){return AT.LRUCache}});Object.defineProperty(Z,"Touch",{enumerable:!0,get:function(){return AT.Touch}});var woe=qD();Object.defineProperty(Z,"Disposable",{enumerable:!0,get:function(){return woe.Disposable}});var l2=uc();Object.defineProperty(Z,"Event",{enumerable:!0,get:function(){return l2.Event}});Object.defineProperty(Z,"Emitter",{enumerable:!0,get:function(){return l2.Emitter}});var u2=CT();Object.defineProperty(Z,"CancellationTokenSource",{enumerable:!0,get:function(){return u2.CancellationTokenSource}});Object.defineProperty(Z,"CancellationToken",{enumerable:!0,get:function(){return u2.CancellationToken}});var NT=z8();Object.defineProperty(Z,"MessageReader",{enumerable:!0,get:function(){return NT.MessageReader}});Object.defineProperty(Z,"AbstractMessageReader",{enumerable:!0,get:function(){return NT.AbstractMessageReader}});Object.defineProperty(Z,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return NT.ReadableStreamMessageReader}});var HT=t2();Object.defineProperty(Z,"MessageWriter",{enumerable:!0,get:function(){return HT.MessageWriter}});Object.defineProperty(Z,"AbstractMessageWriter",{enumerable:!0,get:function(){return HT.AbstractMessageWriter}});Object.defineProperty(Z,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return HT.WriteableStreamMessageWriter}});var nn=a2();Object.defineProperty(Z,"ConnectionStrategy",{enumerable:!0,get:function(){return nn.ConnectionStrategy}});Object.defineProperty(Z,"ConnectionOptions",{enumerable:!0,get:function(){return nn.ConnectionOptions}});Object.defineProperty(Z,"NullLogger",{enumerable:!0,get:function(){return nn.NullLogger}});Object.defineProperty(Z,"createMessageConnection",{enumerable:!0,get:function(){return nn.createMessageConnection}});Object.defineProperty(Z,"ProgressToken",{enumerable:!0,get:function(){return nn.ProgressToken}});Object.defineProperty(Z,"ProgressType",{enumerable:!0,get:function(){return nn.ProgressType}});Object.defineProperty(Z,"Trace",{enumerable:!0,get:function(){return nn.Trace}});Object.defineProperty(Z,"TraceValues",{enumerable:!0,get:function(){return nn.TraceValues}});Object.defineProperty(Z,"TraceFormat",{enumerable:!0,get:function(){return nn.TraceFormat}});Object.defineProperty(Z,"SetTraceNotification",{enumerable:!0,get:function(){return nn.SetTraceNotification}});Object.defineProperty(Z,"LogTraceNotification",{enumerable:!0,get:function(){return nn.LogTraceNotification}});Object.defineProperty(Z,"ConnectionErrors",{enumerable:!0,get:function(){return nn.ConnectionErrors}});Object.defineProperty(Z,"ConnectionError",{enumerable:!0,get:function(){return nn.ConnectionError}});Object.defineProperty(Z,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return nn.CancellationReceiverStrategy}});Object.defineProperty(Z,"CancellationSenderStrategy",{enumerable:!0,get:function(){return nn.CancellationSenderStrategy}});Object.defineProperty(Z,"CancellationStrategy",{enumerable:!0,get:function(){return nn.CancellationStrategy}});var xoe=Vo();Z.RAL=xoe.default});var wl=v(bt=>{"use strict";var Coe=bt&&bt.__createBinding||(Object.create?function(n,e,t,i){i===void 0&&(i=t);var r=Object.getOwnPropertyDescriptor(e,t);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,i,r)}:function(n,e,t,i){i===void 0&&(i=t),n[i]=e[t]}),Soe=bt&&bt.__exportStar||function(n,e){for(var t in n)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Coe(e,n,t)};Object.defineProperty(bt,"__esModule",{value:!0});bt.createMessageConnection=bt.createServerSocketTransport=bt.createClientSocketTransport=bt.createServerPipeTransport=bt.createClientPipeTransport=bt.generateRandomPipeName=bt.StreamMessageWriter=bt.StreamMessageReader=bt.SocketMessageWriter=bt.SocketMessageReader=bt.IPCMessageWriter=bt.IPCMessageReader=void 0;var dc=J8();dc.default.install();var wo=BT(),c2=require("path"),Doe=require("os"),Toe=require("crypto"),zy=require("net");Soe(BT(),bt);var qT=class extends wo.AbstractMessageReader{constructor(e){super(),this.process=e;let t=this.process;t.on("error",i=>this.fireError(i)),t.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),wo.Disposable.create(()=>this.process.off("message",e))}};bt.IPCMessageReader=qT;var WT=class extends wo.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let t=this.process;t.on("error",i=>this.fireError(i)),t.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,t=>{t?(this.errorCount++,this.handleError(t,e)):this.errorCount=0}),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}};bt.IPCMessageWriter=WT;var yl=class extends wo.ReadableStreamMessageReader{constructor(e,t="utf-8"){super((0,dc.default)().stream.asReadableStream(e),t)}};bt.SocketMessageReader=yl;var vl=class extends wo.WriteableStreamMessageWriter{constructor(e,t){super((0,dc.default)().stream.asWritableStream(e),t),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};bt.SocketMessageWriter=vl;var Xy=class extends wo.ReadableStreamMessageReader{constructor(e,t){super((0,dc.default)().stream.asReadableStream(e),t)}};bt.StreamMessageReader=Xy;var Gy=class extends wo.WriteableStreamMessageWriter{constructor(e,t){super((0,dc.default)().stream.asWritableStream(e),t)}};bt.StreamMessageWriter=Gy;var d2=process.env.XDG_RUNTIME_DIR,koe=new Map([["linux",107],["darwin",103]]);function Poe(){let n=(0,Toe.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${n}-sock`;let e;d2?e=c2.join(d2,`vscode-ipc-${n}.sock`):e=c2.join(Doe.tmpdir(),`vscode-${n}.sock`);let t=koe.get(process.platform);return t!==void 0&&e.length>=t&&(0,dc.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${t} characters.`),e}bt.generateRandomPipeName=Poe;function Roe(n,e="utf-8"){let t,i=new Promise((r,o)=>{t=r});return new Promise((r,o)=>{let s=(0,zy.createServer)(a=>{s.close(),t([new yl(a,e),new vl(a,e)])});s.on("error",o),s.listen(n,()=>{s.removeListener("error",o),r({onConnected:()=>i})})})}bt.createClientPipeTransport=Roe;function _oe(n,e="utf-8"){let t=(0,zy.createConnection)(n);return[new yl(t,e),new vl(t,e)]}bt.createServerPipeTransport=_oe;function Eoe(n,e="utf-8"){let t,i=new Promise((r,o)=>{t=r});return new Promise((r,o)=>{let s=(0,zy.createServer)(a=>{s.close(),t([new yl(a,e),new vl(a,e)])});s.on("error",o),s.listen(n,"127.0.0.1",()=>{s.removeListener("error",o),r({onConnected:()=>i})})})}bt.createClientSocketTransport=Eoe;function Ioe(n,e="utf-8"){let t=(0,zy.createConnection)(n,"127.0.0.1");return[new yl(t,e),new vl(t,e)]}bt.createServerSocketTransport=Ioe;function Loe(n){let e=n;return e.read!==void 0&&e.addListener!==void 0}function Foe(n){let e=n;return e.write!==void 0&&e.addListener!==void 0}function Moe(n,e,t,i){t||(t=wo.NullLogger);let r=Loe(n)?new Xy(n):n,o=Foe(e)?new Gy(e):e;return wo.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,wo.createMessageConnection)(r,o,t,i)}bt.createMessageConnection=Moe});var YT=v((MDe,h2)=>{"use strict";h2.exports=wl()});var Vy={};qs(Vy,{AnnotatedTextEdit:()=>In,ChangeAnnotation:()=>ns,ChangeAnnotationIdentifier:()=>Pi,CodeAction:()=>og,CodeActionContext:()=>rg,CodeActionKind:()=>Gt,CodeActionTriggerKind:()=>ls,CodeDescription:()=>Uh,CodeLens:()=>sg,Color:()=>hc,ColorInformation:()=>Wh,ColorPresentation:()=>Yh,Command:()=>Ln,CompletionItem:()=>Kh,CompletionItemKind:()=>ne,CompletionItemLabelDetails:()=>zh,CompletionItemTag:()=>rs,CompletionList:()=>Qh,CreateFile:()=>Gn,DeleteFile:()=>Fn,Diagnostic:()=>Ur,DiagnosticRelatedInformation:()=>gc,DiagnosticSeverity:()=>nt,DiagnosticTag:()=>Ji,DocumentHighlight:()=>tg,DocumentHighlightKind:()=>Vs,DocumentLink:()=>Tl,DocumentSymbol:()=>Dl,DocumentUri:()=>Bh,EOL:()=>joe,FoldingRange:()=>Jh,FoldingRangeKind:()=>Zh,FormattingOptions:()=>ag,Hover:()=>as,InlayHint:()=>gg,InlayHintKind:()=>$r,InlayHintLabelPart:()=>pc,InlineValueContext:()=>hg,InlineValueEvaluatableExpression:()=>dg,InlineValueText:()=>ug,InlineValueVariableLookup:()=>cg,InsertReplaceEdit:()=>os,InsertTextFormat:()=>Sl,InsertTextMode:()=>vr,Location:()=>Ze,LocationLink:()=>br,MarkedString:()=>ss,MarkupContent:()=>Mn,MarkupKind:()=>yr,OptionalVersionedTextDocumentIdentifier:()=>Cl,ParameterInformation:()=>Vh,Position:()=>V,Range:()=>M,RenameFile:()=>zn,SelectionRange:()=>lg,SemanticTokenModifiers:()=>rn,SemanticTokenTypes:()=>Tt,SemanticTokens:()=>ea,SignatureInformation:()=>eg,SymbolInformation:()=>ig,SymbolKind:()=>ke,SymbolTag:()=>Ui,TextDocument:()=>ZT,TextDocumentEdit:()=>ei,TextDocumentIdentifier:()=>$h,TextDocumentItem:()=>Gh,TextEdit:()=>Ye,URI:()=>Qy,VersionedTextDocumentIdentifier:()=>Xh,WorkspaceChange:()=>JT,WorkspaceEdit:()=>Qs,WorkspaceFolder:()=>pg,WorkspaceSymbol:()=>ng,integer:()=>qh,uinteger:()=>xl});var Bh,Qy,qh,xl,V,M,Ze,br,hc,Wh,Yh,Zh,Jh,gc,nt,Ji,Uh,Ur,Ln,Ye,ns,Pi,In,ei,Gn,zn,Fn,Qs,Ky,g2,JT,$h,Xh,Cl,Gh,yr,Mn,ne,Sl,rs,os,vr,zh,Kh,Qh,ss,as,Vh,eg,Vs,tg,ke,Ui,ig,ng,Dl,Gt,ls,rg,og,sg,ag,Tl,lg,Tt,rn,ea,ug,cg,dg,hg,$r,pc,gg,pg,joe,ZT,Ooe,N,ae=D(()=>{"use strict";(function(n){function e(t){return typeof t=="string"}n.is=e})(Bh||(Bh={}));(function(n){function e(t){return typeof t=="string"}n.is=e})(Qy||(Qy={}));(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})(qh||(qh={}));(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})(xl||(xl={}));(function(n){function e(i,r){return i===Number.MAX_VALUE&&(i=xl.MAX_VALUE),r===Number.MAX_VALUE&&(r=xl.MAX_VALUE),{line:i,character:r}}n.create=e;function t(i){var r=i;return N.objectLiteral(r)&&N.uinteger(r.line)&&N.uinteger(r.character)}n.is=t})(V||(V={}));(function(n){function e(i,r,o,s){if(N.uinteger(i)&&N.uinteger(r)&&N.uinteger(o)&&N.uinteger(s))return{start:V.create(i,r),end:V.create(o,s)};if(V.is(i)&&V.is(r))return{start:i,end:r};throw new Error("Range#create called with invalid arguments[".concat(i,", ").concat(r,", ").concat(o,", ").concat(s,"]"))}n.create=e;function t(i){var r=i;return N.objectLiteral(r)&&V.is(r.start)&&V.is(r.end)}n.is=t})(M||(M={}));(function(n){function e(i,r){return{uri:i,range:r}}n.create=e;function t(i){var r=i;return N.objectLiteral(r)&&M.is(r.range)&&(N.string(r.uri)||N.undefined(r.uri))}n.is=t})(Ze||(Ze={}));(function(n){function e(i,r,o,s){return{targetUri:i,targetRange:r,targetSelectionRange:o,originSelectionRange:s}}n.create=e;function t(i){var r=i;return N.objectLiteral(r)&&M.is(r.targetRange)&&N.string(r.targetUri)&&M.is(r.targetSelectionRange)&&(M.is(r.originSelectionRange)||N.undefined(r.originSelectionRange))}n.is=t})(br||(br={}));(function(n){function e(i,r,o,s){return{red:i,green:r,blue:o,alpha:s}}n.create=e;function t(i){var r=i;return N.objectLiteral(r)&&N.numberRange(r.red,0,1)&&N.numberRange(r.green,0,1)&&N.numberRange(r.blue,0,1)&&N.numberRange(r.alpha,0,1)}n.is=t})(hc||(hc={}));(function(n){function e(i,r){return{range:i,color:r}}n.create=e;function t(i){var r=i;return N.objectLiteral(r)&&M.is(r.range)&&hc.is(r.color)}n.is=t})(Wh||(Wh={}));(function(n){function e(i,r,o){return{label:i,textEdit:r,additionalTextEdits:o}}n.create=e;function t(i){var r=i;return N.objectLiteral(r)&&N.string(r.label)&&(N.undefined(r.textEdit)||Ye.is(r))&&(N.undefined(r.additionalTextEdits)||N.typedArray(r.additionalTextEdits,Ye.is))}n.is=t})(Yh||(Yh={}));(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(Zh||(Zh={}));(function(n){function e(i,r,o,s,a,l){var u={startLine:i,endLine:r};return N.defined(o)&&(u.startCharacter=o),N.defined(s)&&(u.endCharacter=s),N.defined(a)&&(u.kind=a),N.defined(l)&&(u.collapsedText=l),u}n.create=e;function t(i){var r=i;return N.objectLiteral(r)&&N.uinteger(r.startLine)&&N.uinteger(r.startLine)&&(N.undefined(r.startCharacter)||N.uinteger(r.startCharacter))&&(N.undefined(r.endCharacter)||N.uinteger(r.endCharacter))&&(N.undefined(r.kind)||N.string(r.kind))}n.is=t})(Jh||(Jh={}));(function(n){function e(i,r){return{location:i,message:r}}n.create=e;function t(i){var r=i;return N.defined(r)&&Ze.is(r.location)&&N.string(r.message)}n.is=t})(gc||(gc={}));(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(nt||(nt={}));(function(n){n.Unnecessary=1,n.Deprecated=2})(Ji||(Ji={}));(function(n){function e(t){var i=t;return N.objectLiteral(i)&&N.string(i.href)}n.is=e})(Uh||(Uh={}));(function(n){function e(i,r,o,s,a,l){var u={range:i,message:r};return N.defined(o)&&(u.severity=o),N.defined(s)&&(u.code=s),N.defined(a)&&(u.source=a),N.defined(l)&&(u.relatedInformation=l),u}n.create=e;function t(i){var r,o=i;return N.defined(o)&&M.is(o.range)&&N.string(o.message)&&(N.number(o.severity)||N.undefined(o.severity))&&(N.integer(o.code)||N.string(o.code)||N.undefined(o.code))&&(N.undefined(o.codeDescription)||N.string((r=o.codeDescription)===null||r===void 0?void 0:r.href))&&(N.string(o.source)||N.undefined(o.source))&&(N.undefined(o.relatedInformation)||N.typedArray(o.relatedInformation,gc.is))}n.is=t})(Ur||(Ur={}));(function(n){function e(i,r){for(var o=[],s=2;s0&&(a.arguments=o),a}n.create=e;function t(i){var r=i;return N.defined(r)&&N.string(r.title)&&N.string(r.command)}n.is=t})(Ln||(Ln={}));(function(n){function e(o,s){return{range:o,newText:s}}n.replace=e;function t(o,s){return{range:{start:o,end:o},newText:s}}n.insert=t;function i(o){return{range:o,newText:""}}n.del=i;function r(o){var s=o;return N.objectLiteral(s)&&N.string(s.newText)&&M.is(s.range)}n.is=r})(Ye||(Ye={}));(function(n){function e(i,r,o){var s={label:i};return r!==void 0&&(s.needsConfirmation=r),o!==void 0&&(s.description=o),s}n.create=e;function t(i){var r=i;return N.objectLiteral(r)&&N.string(r.label)&&(N.boolean(r.needsConfirmation)||r.needsConfirmation===void 0)&&(N.string(r.description)||r.description===void 0)}n.is=t})(ns||(ns={}));(function(n){function e(t){var i=t;return N.string(i)}n.is=e})(Pi||(Pi={}));(function(n){function e(o,s,a){return{range:o,newText:s,annotationId:a}}n.replace=e;function t(o,s,a){return{range:{start:o,end:o},newText:s,annotationId:a}}n.insert=t;function i(o,s){return{range:o,newText:"",annotationId:s}}n.del=i;function r(o){var s=o;return Ye.is(s)&&(ns.is(s.annotationId)||Pi.is(s.annotationId))}n.is=r})(In||(In={}));(function(n){function e(i,r){return{textDocument:i,edits:r}}n.create=e;function t(i){var r=i;return N.defined(r)&&Cl.is(r.textDocument)&&Array.isArray(r.edits)}n.is=t})(ei||(ei={}));(function(n){function e(i,r,o){var s={kind:"create",uri:i};return r!==void 0&&(r.overwrite!==void 0||r.ignoreIfExists!==void 0)&&(s.options=r),o!==void 0&&(s.annotationId=o),s}n.create=e;function t(i){var r=i;return r&&r.kind==="create"&&N.string(r.uri)&&(r.options===void 0||(r.options.overwrite===void 0||N.boolean(r.options.overwrite))&&(r.options.ignoreIfExists===void 0||N.boolean(r.options.ignoreIfExists)))&&(r.annotationId===void 0||Pi.is(r.annotationId))}n.is=t})(Gn||(Gn={}));(function(n){function e(i,r,o,s){var a={kind:"rename",oldUri:i,newUri:r};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(a.options=o),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(i){var r=i;return r&&r.kind==="rename"&&N.string(r.oldUri)&&N.string(r.newUri)&&(r.options===void 0||(r.options.overwrite===void 0||N.boolean(r.options.overwrite))&&(r.options.ignoreIfExists===void 0||N.boolean(r.options.ignoreIfExists)))&&(r.annotationId===void 0||Pi.is(r.annotationId))}n.is=t})(zn||(zn={}));(function(n){function e(i,r,o){var s={kind:"delete",uri:i};return r!==void 0&&(r.recursive!==void 0||r.ignoreIfNotExists!==void 0)&&(s.options=r),o!==void 0&&(s.annotationId=o),s}n.create=e;function t(i){var r=i;return r&&r.kind==="delete"&&N.string(r.uri)&&(r.options===void 0||(r.options.recursive===void 0||N.boolean(r.options.recursive))&&(r.options.ignoreIfNotExists===void 0||N.boolean(r.options.ignoreIfNotExists)))&&(r.annotationId===void 0||Pi.is(r.annotationId))}n.is=t})(Fn||(Fn={}));(function(n){function e(t){var i=t;return i&&(i.changes!==void 0||i.documentChanges!==void 0)&&(i.documentChanges===void 0||i.documentChanges.every(function(r){return N.string(r.kind)?Gn.is(r)||zn.is(r)||Fn.is(r):ei.is(r)}))}n.is=e})(Qs||(Qs={}));Ky=function(){function n(e,t){this.edits=e,this.changeAnnotations=t}return n.prototype.insert=function(e,t,i){var r,o;if(i===void 0?r=Ye.insert(e,t):Pi.is(i)?(o=i,r=In.insert(e,t,i)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(i),r=In.insert(e,t,o)),this.edits.push(r),o!==void 0)return o},n.prototype.replace=function(e,t,i){var r,o;if(i===void 0?r=Ye.replace(e,t):Pi.is(i)?(o=i,r=In.replace(e,t,i)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(i),r=In.replace(e,t,o)),this.edits.push(r),o!==void 0)return o},n.prototype.delete=function(e,t){var i,r;if(t===void 0?i=Ye.del(e):Pi.is(t)?(r=t,i=In.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),r=this.changeAnnotations.manage(t),i=In.del(e,r)),this.edits.push(i),r!==void 0)return r},n.prototype.add=function(e){this.edits.push(e)},n.prototype.all=function(){return this.edits},n.prototype.clear=function(){this.edits.splice(0,this.edits.length)},n.prototype.assertChangeAnnotations=function(e){if(e===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},n}(),g2=function(){function n(e){this._annotations=e===void 0?Object.create(null):e,this._counter=0,this._size=0}return n.prototype.all=function(){return this._annotations},Object.defineProperty(n.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),n.prototype.manage=function(e,t){var i;if(Pi.is(e)?i=e:(i=this.nextId(),t=e),this._annotations[i]!==void 0)throw new Error("Id ".concat(i," is already in use."));if(t===void 0)throw new Error("No annotation provided for id ".concat(i));return this._annotations[i]=t,this._size++,i},n.prototype.nextId=function(){return this._counter++,this._counter.toString()},n}(),JT=function(){function n(e){var t=this;this._textEditChanges=Object.create(null),e!==void 0?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new g2(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(function(i){if(ei.is(i)){var r=new Ky(i.edits,t._changeAnnotations);t._textEditChanges[i.textDocument.uri]=r}})):e.changes&&Object.keys(e.changes).forEach(function(i){var r=new Ky(e.changes[i]);t._textEditChanges[i]=r})):this._workspaceEdit={}}return Object.defineProperty(n.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),n.prototype.getTextEditChange=function(e){if(Cl.is(e)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var t={uri:e.uri,version:e.version},i=this._textEditChanges[t.uri];if(!i){var r=[],o={textDocument:t,edits:r};this._workspaceEdit.documentChanges.push(o),i=new Ky(r,this._changeAnnotations),this._textEditChanges[t.uri]=i}return i}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var i=this._textEditChanges[e];if(!i){var r=[];this._workspaceEdit.changes[e]=r,i=new Ky(r),this._textEditChanges[e]=i}return i}},n.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new g2,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},n.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},n.prototype.createFile=function(e,t,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var r;ns.is(t)||Pi.is(t)?r=t:i=t;var o,s;if(r===void 0?o=Gn.create(e,i):(s=Pi.is(r)?r:this._changeAnnotations.manage(r),o=Gn.create(e,i,s)),this._workspaceEdit.documentChanges.push(o),s!==void 0)return s},n.prototype.renameFile=function(e,t,i,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var o;ns.is(i)||Pi.is(i)?o=i:r=i;var s,a;if(o===void 0?s=zn.create(e,t,r):(a=Pi.is(o)?o:this._changeAnnotations.manage(o),s=zn.create(e,t,r,a)),this._workspaceEdit.documentChanges.push(s),a!==void 0)return a},n.prototype.deleteFile=function(e,t,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var r;ns.is(t)||Pi.is(t)?r=t:i=t;var o,s;if(r===void 0?o=Fn.create(e,i):(s=Pi.is(r)?r:this._changeAnnotations.manage(r),o=Fn.create(e,i,s)),this._workspaceEdit.documentChanges.push(o),s!==void 0)return s},n}();(function(n){function e(i){return{uri:i}}n.create=e;function t(i){var r=i;return N.defined(r)&&N.string(r.uri)}n.is=t})($h||($h={}));(function(n){function e(i,r){return{uri:i,version:r}}n.create=e;function t(i){var r=i;return N.defined(r)&&N.string(r.uri)&&N.integer(r.version)}n.is=t})(Xh||(Xh={}));(function(n){function e(i,r){return{uri:i,version:r}}n.create=e;function t(i){var r=i;return N.defined(r)&&N.string(r.uri)&&(r.version===null||N.integer(r.version))}n.is=t})(Cl||(Cl={}));(function(n){function e(i,r,o,s){return{uri:i,languageId:r,version:o,text:s}}n.create=e;function t(i){var r=i;return N.defined(r)&&N.string(r.uri)&&N.string(r.languageId)&&N.integer(r.version)&&N.string(r.text)}n.is=t})(Gh||(Gh={}));(function(n){n.PlainText="plaintext",n.Markdown="markdown";function e(t){var i=t;return i===n.PlainText||i===n.Markdown}n.is=e})(yr||(yr={}));(function(n){function e(t){var i=t;return N.objectLiteral(t)&&yr.is(i.kind)&&N.string(i.value)}n.is=e})(Mn||(Mn={}));(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})(ne||(ne={}));(function(n){n.PlainText=1,n.Snippet=2})(Sl||(Sl={}));(function(n){n.Deprecated=1})(rs||(rs={}));(function(n){function e(i,r,o){return{newText:i,insert:r,replace:o}}n.create=e;function t(i){var r=i;return r&&N.string(r.newText)&&M.is(r.insert)&&M.is(r.replace)}n.is=t})(os||(os={}));(function(n){n.asIs=1,n.adjustIndentation=2})(vr||(vr={}));(function(n){function e(t){var i=t;return i&&(N.string(i.detail)||i.detail===void 0)&&(N.string(i.description)||i.description===void 0)}n.is=e})(zh||(zh={}));(function(n){function e(t){return{label:t}}n.create=e})(Kh||(Kh={}));(function(n){function e(t,i){return{items:t||[],isIncomplete:!!i}}n.create=e})(Qh||(Qh={}));(function(n){function e(i){return i.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=e;function t(i){var r=i;return N.string(r)||N.objectLiteral(r)&&N.string(r.language)&&N.string(r.value)}n.is=t})(ss||(ss={}));(function(n){function e(t){var i=t;return!!i&&N.objectLiteral(i)&&(Mn.is(i.contents)||ss.is(i.contents)||N.typedArray(i.contents,ss.is))&&(t.range===void 0||M.is(t.range))}n.is=e})(as||(as={}));(function(n){function e(t,i){return i?{label:t,documentation:i}:{label:t}}n.create=e})(Vh||(Vh={}));(function(n){function e(t,i){for(var r=[],o=2;o=0;c--){var d=l[c],h=o.offsetAt(d.range.start),g=o.offsetAt(d.range.end);if(g<=u)a=a.substring(0,h)+d.newText+a.substring(g,a.length);else throw new Error("Overlapping edit");u=h}return a}n.applyEdits=i;function r(o,s){if(o.length<=1)return o;var a=o.length/2|0,l=o.slice(0,a),u=o.slice(a);r(l,s),r(u,s);for(var c=0,d=0,h=0;c0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},n.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),i=0,r=t.length;if(r===0)return V.create(0,e);for(;ie?r=o:i=o+1}var s=i-1;return V.create(s,e-t[s])},n.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var i=t[e.line],r=e.line+1"u"}n.undefined=i;function r(g){return g===!0||g===!1}n.boolean=r;function o(g){return e.call(g)==="[object String]"}n.string=o;function s(g){return e.call(g)==="[object Number]"}n.number=s;function a(g,f,m){return e.call(g)==="[object Number]"&&f<=g&&g<=m}n.numberRange=a;function l(g){return e.call(g)==="[object Number]"&&-2147483648<=g&&g<=2147483647}n.integer=l;function u(g){return e.call(g)==="[object Number]"&&0<=g&&g<=2147483647}n.uinteger=u;function c(g){return e.call(g)==="[object Function]"}n.func=c;function d(g){return g!==null&&typeof g=="object"}n.objectLiteral=d;function h(g,f){return Array.isArray(g)&&g.every(f)}n.typedArray=h})(N||(N={}))});var ti=v(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});vn.ProtocolNotificationType=vn.ProtocolNotificationType0=vn.ProtocolRequestType=vn.ProtocolRequestType0=vn.RegistrationType=vn.MessageDirection=void 0;var fc=wl(),Aoe;(function(n){n.clientToServer="clientToServer",n.serverToClient="serverToClient",n.both="both"})(Aoe=vn.MessageDirection||(vn.MessageDirection={}));var UT=class{constructor(e){this.method=e}};vn.RegistrationType=UT;var $T=class extends fc.RequestType0{constructor(e){super(e)}};vn.ProtocolRequestType0=$T;var XT=class extends fc.RequestType{constructor(e){super(e,fc.ParameterStructures.byName)}};vn.ProtocolRequestType=XT;var GT=class extends fc.NotificationType0{constructor(e){super(e)}};vn.ProtocolNotificationType0=GT;var zT=class extends fc.NotificationType{constructor(e){super(e,fc.ParameterStructures.byName)}};vn.ProtocolNotificationType=zT});var ev=v(yi=>{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.objectLiteral=yi.typedArray=yi.stringArray=yi.array=yi.func=yi.error=yi.number=yi.string=yi.boolean=void 0;function Noe(n){return n===!0||n===!1}yi.boolean=Noe;function p2(n){return typeof n=="string"||n instanceof String}yi.string=p2;function Hoe(n){return typeof n=="number"||n instanceof Number}yi.number=Hoe;function Boe(n){return n instanceof Error}yi.error=Boe;function qoe(n){return typeof n=="function"}yi.func=qoe;function f2(n){return Array.isArray(n)}yi.array=f2;function Woe(n){return f2(n)&&n.every(e=>p2(e))}yi.stringArray=Woe;function Yoe(n,e){return Array.isArray(n)&&n.every(e)}yi.typedArray=Yoe;function Zoe(n){return n!==null&&typeof n=="object"}yi.objectLiteral=Zoe});var b2=v(fg=>{"use strict";Object.defineProperty(fg,"__esModule",{value:!0});fg.ImplementationRequest=void 0;var m2=ti(),Joe;(function(n){n.method="textDocument/implementation",n.messageDirection=m2.MessageDirection.clientToServer,n.type=new m2.ProtocolRequestType(n.method)})(Joe=fg.ImplementationRequest||(fg.ImplementationRequest={}))});var v2=v(mg=>{"use strict";Object.defineProperty(mg,"__esModule",{value:!0});mg.TypeDefinitionRequest=void 0;var y2=ti(),Uoe;(function(n){n.method="textDocument/typeDefinition",n.messageDirection=y2.MessageDirection.clientToServer,n.type=new y2.ProtocolRequestType(n.method)})(Uoe=mg.TypeDefinitionRequest||(mg.TypeDefinitionRequest={}))});var w2=v(ta=>{"use strict";Object.defineProperty(ta,"__esModule",{value:!0});ta.DidChangeWorkspaceFoldersNotification=ta.WorkspaceFoldersRequest=void 0;var tv=ti(),$oe;(function(n){n.method="workspace/workspaceFolders",n.messageDirection=tv.MessageDirection.serverToClient,n.type=new tv.ProtocolRequestType0(n.method)})($oe=ta.WorkspaceFoldersRequest||(ta.WorkspaceFoldersRequest={}));var Xoe;(function(n){n.method="workspace/didChangeWorkspaceFolders",n.messageDirection=tv.MessageDirection.clientToServer,n.type=new tv.ProtocolNotificationType(n.method)})(Xoe=ta.DidChangeWorkspaceFoldersNotification||(ta.DidChangeWorkspaceFoldersNotification={}))});var C2=v(bg=>{"use strict";Object.defineProperty(bg,"__esModule",{value:!0});bg.ConfigurationRequest=void 0;var x2=ti(),Goe;(function(n){n.method="workspace/configuration",n.messageDirection=x2.MessageDirection.serverToClient,n.type=new x2.ProtocolRequestType(n.method)})(Goe=bg.ConfigurationRequest||(bg.ConfigurationRequest={}))});var S2=v(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.ColorPresentationRequest=ia.DocumentColorRequest=void 0;var iv=ti(),zoe;(function(n){n.method="textDocument/documentColor",n.messageDirection=iv.MessageDirection.clientToServer,n.type=new iv.ProtocolRequestType(n.method)})(zoe=ia.DocumentColorRequest||(ia.DocumentColorRequest={}));var Koe;(function(n){n.method="textDocument/colorPresentation",n.messageDirection=iv.MessageDirection.clientToServer,n.type=new iv.ProtocolRequestType(n.method)})(Koe=ia.ColorPresentationRequest||(ia.ColorPresentationRequest={}))});var T2=v(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0});yg.FoldingRangeRequest=void 0;var D2=ti(),Qoe;(function(n){n.method="textDocument/foldingRange",n.messageDirection=D2.MessageDirection.clientToServer,n.type=new D2.ProtocolRequestType(n.method)})(Qoe=yg.FoldingRangeRequest||(yg.FoldingRangeRequest={}))});var P2=v(vg=>{"use strict";Object.defineProperty(vg,"__esModule",{value:!0});vg.DeclarationRequest=void 0;var k2=ti(),Voe;(function(n){n.method="textDocument/declaration",n.messageDirection=k2.MessageDirection.clientToServer,n.type=new k2.ProtocolRequestType(n.method)})(Voe=vg.DeclarationRequest||(vg.DeclarationRequest={}))});var _2=v(wg=>{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});wg.SelectionRangeRequest=void 0;var R2=ti(),ese;(function(n){n.method="textDocument/selectionRange",n.messageDirection=R2.MessageDirection.clientToServer,n.type=new R2.ProtocolRequestType(n.method)})(ese=wg.SelectionRangeRequest||(wg.SelectionRangeRequest={}))});var E2=v(Xr=>{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});Xr.WorkDoneProgressCancelNotification=Xr.WorkDoneProgressCreateRequest=Xr.WorkDoneProgress=void 0;var tse=wl(),nv=ti(),ise;(function(n){n.type=new tse.ProgressType;function e(t){return t===n.type}n.is=e})(ise=Xr.WorkDoneProgress||(Xr.WorkDoneProgress={}));var nse;(function(n){n.method="window/workDoneProgress/create",n.messageDirection=nv.MessageDirection.serverToClient,n.type=new nv.ProtocolRequestType(n.method)})(nse=Xr.WorkDoneProgressCreateRequest||(Xr.WorkDoneProgressCreateRequest={}));var rse;(function(n){n.method="window/workDoneProgress/cancel",n.messageDirection=nv.MessageDirection.clientToServer,n.type=new nv.ProtocolNotificationType(n.method)})(rse=Xr.WorkDoneProgressCancelNotification||(Xr.WorkDoneProgressCancelNotification={}))});var I2=v(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.CallHierarchyOutgoingCallsRequest=Gr.CallHierarchyIncomingCallsRequest=Gr.CallHierarchyPrepareRequest=void 0;var mc=ti(),ose;(function(n){n.method="textDocument/prepareCallHierarchy",n.messageDirection=mc.MessageDirection.clientToServer,n.type=new mc.ProtocolRequestType(n.method)})(ose=Gr.CallHierarchyPrepareRequest||(Gr.CallHierarchyPrepareRequest={}));var sse;(function(n){n.method="callHierarchy/incomingCalls",n.messageDirection=mc.MessageDirection.clientToServer,n.type=new mc.ProtocolRequestType(n.method)})(sse=Gr.CallHierarchyIncomingCallsRequest||(Gr.CallHierarchyIncomingCallsRequest={}));var ase;(function(n){n.method="callHierarchy/outgoingCalls",n.messageDirection=mc.MessageDirection.clientToServer,n.type=new mc.ProtocolRequestType(n.method)})(ase=Gr.CallHierarchyOutgoingCallsRequest||(Gr.CallHierarchyOutgoingCallsRequest={}))});var L2=v(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.SemanticTokensRefreshRequest=vi.SemanticTokensRangeRequest=vi.SemanticTokensDeltaRequest=vi.SemanticTokensRequest=vi.SemanticTokensRegistrationType=vi.TokenFormat=void 0;var us=ti(),lse;(function(n){n.Relative="relative"})(lse=vi.TokenFormat||(vi.TokenFormat={}));var rv;(function(n){n.method="textDocument/semanticTokens",n.type=new us.RegistrationType(n.method)})(rv=vi.SemanticTokensRegistrationType||(vi.SemanticTokensRegistrationType={}));var use;(function(n){n.method="textDocument/semanticTokens/full",n.messageDirection=us.MessageDirection.clientToServer,n.type=new us.ProtocolRequestType(n.method),n.registrationMethod=rv.method})(use=vi.SemanticTokensRequest||(vi.SemanticTokensRequest={}));var cse;(function(n){n.method="textDocument/semanticTokens/full/delta",n.messageDirection=us.MessageDirection.clientToServer,n.type=new us.ProtocolRequestType(n.method),n.registrationMethod=rv.method})(cse=vi.SemanticTokensDeltaRequest||(vi.SemanticTokensDeltaRequest={}));var dse;(function(n){n.method="textDocument/semanticTokens/range",n.messageDirection=us.MessageDirection.clientToServer,n.type=new us.ProtocolRequestType(n.method),n.registrationMethod=rv.method})(dse=vi.SemanticTokensRangeRequest||(vi.SemanticTokensRangeRequest={}));var hse;(function(n){n.method="workspace/semanticTokens/refresh",n.messageDirection=us.MessageDirection.clientToServer,n.type=new us.ProtocolRequestType0(n.method)})(hse=vi.SemanticTokensRefreshRequest||(vi.SemanticTokensRefreshRequest={}))});var M2=v(xg=>{"use strict";Object.defineProperty(xg,"__esModule",{value:!0});xg.ShowDocumentRequest=void 0;var F2=ti(),gse;(function(n){n.method="window/showDocument",n.messageDirection=F2.MessageDirection.serverToClient,n.type=new F2.ProtocolRequestType(n.method)})(gse=xg.ShowDocumentRequest||(xg.ShowDocumentRequest={}))});var O2=v(Cg=>{"use strict";Object.defineProperty(Cg,"__esModule",{value:!0});Cg.LinkedEditingRangeRequest=void 0;var j2=ti(),pse;(function(n){n.method="textDocument/linkedEditingRange",n.messageDirection=j2.MessageDirection.clientToServer,n.type=new j2.ProtocolRequestType(n.method)})(pse=Cg.LinkedEditingRangeRequest||(Cg.LinkedEditingRangeRequest={}))});var A2=v(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.WillDeleteFilesRequest=ii.DidDeleteFilesNotification=ii.DidRenameFilesNotification=ii.WillRenameFilesRequest=ii.DidCreateFilesNotification=ii.WillCreateFilesRequest=ii.FileOperationPatternKind=void 0;var wr=ti(),fse;(function(n){n.file="file",n.folder="folder"})(fse=ii.FileOperationPatternKind||(ii.FileOperationPatternKind={}));var mse;(function(n){n.method="workspace/willCreateFiles",n.messageDirection=wr.MessageDirection.clientToServer,n.type=new wr.ProtocolRequestType(n.method)})(mse=ii.WillCreateFilesRequest||(ii.WillCreateFilesRequest={}));var bse;(function(n){n.method="workspace/didCreateFiles",n.messageDirection=wr.MessageDirection.clientToServer,n.type=new wr.ProtocolNotificationType(n.method)})(bse=ii.DidCreateFilesNotification||(ii.DidCreateFilesNotification={}));var yse;(function(n){n.method="workspace/willRenameFiles",n.messageDirection=wr.MessageDirection.clientToServer,n.type=new wr.ProtocolRequestType(n.method)})(yse=ii.WillRenameFilesRequest||(ii.WillRenameFilesRequest={}));var vse;(function(n){n.method="workspace/didRenameFiles",n.messageDirection=wr.MessageDirection.clientToServer,n.type=new wr.ProtocolNotificationType(n.method)})(vse=ii.DidRenameFilesNotification||(ii.DidRenameFilesNotification={}));var wse;(function(n){n.method="workspace/didDeleteFiles",n.messageDirection=wr.MessageDirection.clientToServer,n.type=new wr.ProtocolNotificationType(n.method)})(wse=ii.DidDeleteFilesNotification||(ii.DidDeleteFilesNotification={}));var xse;(function(n){n.method="workspace/willDeleteFiles",n.messageDirection=wr.MessageDirection.clientToServer,n.type=new wr.ProtocolRequestType(n.method)})(xse=ii.WillDeleteFilesRequest||(ii.WillDeleteFilesRequest={}))});var H2=v(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.MonikerRequest=zr.MonikerKind=zr.UniquenessLevel=void 0;var N2=ti(),Cse;(function(n){n.document="document",n.project="project",n.group="group",n.scheme="scheme",n.global="global"})(Cse=zr.UniquenessLevel||(zr.UniquenessLevel={}));var Sse;(function(n){n.$import="import",n.$export="export",n.local="local"})(Sse=zr.MonikerKind||(zr.MonikerKind={}));var Dse;(function(n){n.method="textDocument/moniker",n.messageDirection=N2.MessageDirection.clientToServer,n.type=new N2.ProtocolRequestType(n.method)})(Dse=zr.MonikerRequest||(zr.MonikerRequest={}))});var B2=v(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.TypeHierarchySubtypesRequest=Kr.TypeHierarchySupertypesRequest=Kr.TypeHierarchyPrepareRequest=void 0;var bc=ti(),Tse;(function(n){n.method="textDocument/prepareTypeHierarchy",n.messageDirection=bc.MessageDirection.clientToServer,n.type=new bc.ProtocolRequestType(n.method)})(Tse=Kr.TypeHierarchyPrepareRequest||(Kr.TypeHierarchyPrepareRequest={}));var kse;(function(n){n.method="typeHierarchy/supertypes",n.messageDirection=bc.MessageDirection.clientToServer,n.type=new bc.ProtocolRequestType(n.method)})(kse=Kr.TypeHierarchySupertypesRequest||(Kr.TypeHierarchySupertypesRequest={}));var Pse;(function(n){n.method="typeHierarchy/subtypes",n.messageDirection=bc.MessageDirection.clientToServer,n.type=new bc.ProtocolRequestType(n.method)})(Pse=Kr.TypeHierarchySubtypesRequest||(Kr.TypeHierarchySubtypesRequest={}))});var q2=v(na=>{"use strict";Object.defineProperty(na,"__esModule",{value:!0});na.InlineValueRefreshRequest=na.InlineValueRequest=void 0;var ov=ti(),Rse;(function(n){n.method="textDocument/inlineValue",n.messageDirection=ov.MessageDirection.clientToServer,n.type=new ov.ProtocolRequestType(n.method)})(Rse=na.InlineValueRequest||(na.InlineValueRequest={}));var _se;(function(n){n.method="workspace/inlineValue/refresh",n.messageDirection=ov.MessageDirection.clientToServer,n.type=new ov.ProtocolRequestType0(n.method)})(_se=na.InlineValueRefreshRequest||(na.InlineValueRefreshRequest={}))});var W2=v(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.InlayHintRefreshRequest=Qr.InlayHintResolveRequest=Qr.InlayHintRequest=void 0;var yc=ti(),Ese;(function(n){n.method="textDocument/inlayHint",n.messageDirection=yc.MessageDirection.clientToServer,n.type=new yc.ProtocolRequestType(n.method)})(Ese=Qr.InlayHintRequest||(Qr.InlayHintRequest={}));var Ise;(function(n){n.method="inlayHint/resolve",n.messageDirection=yc.MessageDirection.clientToServer,n.type=new yc.ProtocolRequestType(n.method)})(Ise=Qr.InlayHintResolveRequest||(Qr.InlayHintResolveRequest={}));var Lse;(function(n){n.method="workspace/inlayHint/refresh",n.messageDirection=yc.MessageDirection.clientToServer,n.type=new yc.ProtocolRequestType0(n.method)})(Lse=Qr.InlayHintRefreshRequest||(Qr.InlayHintRefreshRequest={}))});var Z2=v($i=>{"use strict";Object.defineProperty($i,"__esModule",{value:!0});$i.DiagnosticRefreshRequest=$i.WorkspaceDiagnosticRequest=$i.DocumentDiagnosticRequest=$i.DocumentDiagnosticReportKind=$i.DiagnosticServerCancellationData=void 0;var Y2=wl(),Fse=ev(),vc=ti(),Mse;(function(n){function e(t){let i=t;return i&&Fse.boolean(i.retriggerRequest)}n.is=e})(Mse=$i.DiagnosticServerCancellationData||($i.DiagnosticServerCancellationData={}));var jse;(function(n){n.Full="full",n.Unchanged="unchanged"})(jse=$i.DocumentDiagnosticReportKind||($i.DocumentDiagnosticReportKind={}));var Ose;(function(n){n.method="textDocument/diagnostic",n.messageDirection=vc.MessageDirection.clientToServer,n.type=new vc.ProtocolRequestType(n.method),n.partialResult=new Y2.ProgressType})(Ose=$i.DocumentDiagnosticRequest||($i.DocumentDiagnosticRequest={}));var Ase;(function(n){n.method="workspace/diagnostic",n.messageDirection=vc.MessageDirection.clientToServer,n.type=new vc.ProtocolRequestType(n.method),n.partialResult=new Y2.ProgressType})(Ase=$i.WorkspaceDiagnosticRequest||($i.WorkspaceDiagnosticRequest={}));var Nse;(function(n){n.method="workspace/diagnostic/refresh",n.messageDirection=vc.MessageDirection.clientToServer,n.type=new vc.ProtocolRequestType0(n.method)})(Nse=$i.DiagnosticRefreshRequest||($i.DiagnosticRefreshRequest={}))});var $2=v(gt=>{"use strict";Object.defineProperty(gt,"__esModule",{value:!0});gt.DidCloseNotebookDocumentNotification=gt.DidSaveNotebookDocumentNotification=gt.DidChangeNotebookDocumentNotification=gt.NotebookCellArrayChange=gt.DidOpenNotebookDocumentNotification=gt.NotebookDocumentSyncRegistrationType=gt.NotebookDocument=gt.NotebookCell=gt.ExecutionSummary=gt.NotebookCellKind=void 0;var Sg=(ae(),Jo(Vy)),Vr=ev(),xo=ti(),J2;(function(n){n.Markup=1,n.Code=2;function e(t){return t===1||t===2}n.is=e})(J2=gt.NotebookCellKind||(gt.NotebookCellKind={}));var U2;(function(n){function e(r,o){let s={executionOrder:r};return(o===!0||o===!1)&&(s.success=o),s}n.create=e;function t(r){let o=r;return Vr.objectLiteral(o)&&Sg.uinteger.is(o.executionOrder)&&(o.success===void 0||Vr.boolean(o.success))}n.is=t;function i(r,o){return r===o?!0:r==null||o===null||o===void 0?!1:r.executionOrder===o.executionOrder&&r.success===o.success}n.equals=i})(U2=gt.ExecutionSummary||(gt.ExecutionSummary={}));var KT;(function(n){function e(o,s){return{kind:o,document:s}}n.create=e;function t(o){let s=o;return Vr.objectLiteral(s)&&J2.is(s.kind)&&Sg.DocumentUri.is(s.document)&&(s.metadata===void 0||Vr.objectLiteral(s.metadata))}n.is=t;function i(o,s){let a=new Set;return o.document!==s.document&&a.add("document"),o.kind!==s.kind&&a.add("kind"),o.executionSummary!==s.executionSummary&&a.add("executionSummary"),(o.metadata!==void 0||s.metadata!==void 0)&&!r(o.metadata,s.metadata)&&a.add("metadata"),(o.executionSummary!==void 0||s.executionSummary!==void 0)&&!U2.equals(o.executionSummary,s.executionSummary)&&a.add("executionSummary"),a}n.diff=i;function r(o,s){if(o===s)return!0;if(o==null||s===null||s===void 0||typeof o!=typeof s||typeof o!="object")return!1;let a=Array.isArray(o),l=Array.isArray(s);if(a!==l)return!1;if(a&&l){if(o.length!==s.length)return!1;for(let u=0;u{"use strict";Object.defineProperty(S,"__esModule",{value:!0});S.WorkspaceSymbolRequest=S.CodeActionResolveRequest=S.CodeActionRequest=S.DocumentSymbolRequest=S.DocumentHighlightRequest=S.ReferencesRequest=S.DefinitionRequest=S.SignatureHelpRequest=S.SignatureHelpTriggerKind=S.HoverRequest=S.CompletionResolveRequest=S.CompletionRequest=S.CompletionTriggerKind=S.PublishDiagnosticsNotification=S.WatchKind=S.RelativePattern=S.FileChangeType=S.DidChangeWatchedFilesNotification=S.WillSaveTextDocumentWaitUntilRequest=S.WillSaveTextDocumentNotification=S.TextDocumentSaveReason=S.DidSaveTextDocumentNotification=S.DidCloseTextDocumentNotification=S.DidChangeTextDocumentNotification=S.TextDocumentContentChangeEvent=S.DidOpenTextDocumentNotification=S.TextDocumentSyncKind=S.TelemetryEventNotification=S.LogMessageNotification=S.ShowMessageRequest=S.ShowMessageNotification=S.MessageType=S.DidChangeConfigurationNotification=S.ExitNotification=S.ShutdownRequest=S.InitializedNotification=S.InitializeErrorCodes=S.InitializeRequest=S.WorkDoneProgressOptions=S.TextDocumentRegistrationOptions=S.StaticRegistrationOptions=S.PositionEncodingKind=S.FailureHandlingKind=S.ResourceOperationKind=S.UnregistrationRequest=S.RegistrationRequest=S.DocumentSelector=S.NotebookCellTextDocumentFilter=S.NotebookDocumentFilter=S.TextDocumentFilter=void 0;S.TypeHierarchySubtypesRequest=S.TypeHierarchyPrepareRequest=S.MonikerRequest=S.MonikerKind=S.UniquenessLevel=S.WillDeleteFilesRequest=S.DidDeleteFilesNotification=S.WillRenameFilesRequest=S.DidRenameFilesNotification=S.WillCreateFilesRequest=S.DidCreateFilesNotification=S.FileOperationPatternKind=S.LinkedEditingRangeRequest=S.ShowDocumentRequest=S.SemanticTokensRegistrationType=S.SemanticTokensRefreshRequest=S.SemanticTokensRangeRequest=S.SemanticTokensDeltaRequest=S.SemanticTokensRequest=S.TokenFormat=S.CallHierarchyPrepareRequest=S.CallHierarchyOutgoingCallsRequest=S.CallHierarchyIncomingCallsRequest=S.WorkDoneProgressCancelNotification=S.WorkDoneProgressCreateRequest=S.WorkDoneProgress=S.SelectionRangeRequest=S.DeclarationRequest=S.FoldingRangeRequest=S.ColorPresentationRequest=S.DocumentColorRequest=S.ConfigurationRequest=S.DidChangeWorkspaceFoldersNotification=S.WorkspaceFoldersRequest=S.TypeDefinitionRequest=S.ImplementationRequest=S.ApplyWorkspaceEditRequest=S.ExecuteCommandRequest=S.PrepareRenameRequest=S.RenameRequest=S.PrepareSupportDefaultBehavior=S.DocumentOnTypeFormattingRequest=S.DocumentRangeFormattingRequest=S.DocumentFormattingRequest=S.DocumentLinkResolveRequest=S.DocumentLinkRequest=S.CodeLensRefreshRequest=S.CodeLensResolveRequest=S.CodeLensRequest=S.WorkspaceSymbolResolveRequest=void 0;S.DidCloseNotebookDocumentNotification=S.DidSaveNotebookDocumentNotification=S.DidChangeNotebookDocumentNotification=S.NotebookCellArrayChange=S.DidOpenNotebookDocumentNotification=S.NotebookDocumentSyncRegistrationType=S.NotebookDocument=S.NotebookCell=S.ExecutionSummary=S.NotebookCellKind=S.DiagnosticRefreshRequest=S.WorkspaceDiagnosticRequest=S.DocumentDiagnosticRequest=S.DocumentDiagnosticReportKind=S.DiagnosticServerCancellationData=S.InlayHintRefreshRequest=S.InlayHintResolveRequest=S.InlayHintRequest=S.InlineValueRefreshRequest=S.InlineValueRequest=S.TypeHierarchySupertypesRequest=void 0;var oe=ti(),X2=(ae(),Jo(Vy)),Xi=ev(),Jse=b2();Object.defineProperty(S,"ImplementationRequest",{enumerable:!0,get:function(){return Jse.ImplementationRequest}});var Use=v2();Object.defineProperty(S,"TypeDefinitionRequest",{enumerable:!0,get:function(){return Use.TypeDefinitionRequest}});var G2=w2();Object.defineProperty(S,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return G2.WorkspaceFoldersRequest}});Object.defineProperty(S,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return G2.DidChangeWorkspaceFoldersNotification}});var $se=C2();Object.defineProperty(S,"ConfigurationRequest",{enumerable:!0,get:function(){return $se.ConfigurationRequest}});var z2=S2();Object.defineProperty(S,"DocumentColorRequest",{enumerable:!0,get:function(){return z2.DocumentColorRequest}});Object.defineProperty(S,"ColorPresentationRequest",{enumerable:!0,get:function(){return z2.ColorPresentationRequest}});var Xse=T2();Object.defineProperty(S,"FoldingRangeRequest",{enumerable:!0,get:function(){return Xse.FoldingRangeRequest}});var Gse=P2();Object.defineProperty(S,"DeclarationRequest",{enumerable:!0,get:function(){return Gse.DeclarationRequest}});var zse=_2();Object.defineProperty(S,"SelectionRangeRequest",{enumerable:!0,get:function(){return zse.SelectionRangeRequest}});var QT=E2();Object.defineProperty(S,"WorkDoneProgress",{enumerable:!0,get:function(){return QT.WorkDoneProgress}});Object.defineProperty(S,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return QT.WorkDoneProgressCreateRequest}});Object.defineProperty(S,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return QT.WorkDoneProgressCancelNotification}});var VT=I2();Object.defineProperty(S,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return VT.CallHierarchyIncomingCallsRequest}});Object.defineProperty(S,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return VT.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(S,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return VT.CallHierarchyPrepareRequest}});var wc=L2();Object.defineProperty(S,"TokenFormat",{enumerable:!0,get:function(){return wc.TokenFormat}});Object.defineProperty(S,"SemanticTokensRequest",{enumerable:!0,get:function(){return wc.SemanticTokensRequest}});Object.defineProperty(S,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return wc.SemanticTokensDeltaRequest}});Object.defineProperty(S,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return wc.SemanticTokensRangeRequest}});Object.defineProperty(S,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return wc.SemanticTokensRefreshRequest}});Object.defineProperty(S,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return wc.SemanticTokensRegistrationType}});var Kse=M2();Object.defineProperty(S,"ShowDocumentRequest",{enumerable:!0,get:function(){return Kse.ShowDocumentRequest}});var Qse=O2();Object.defineProperty(S,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return Qse.LinkedEditingRangeRequest}});var kl=A2();Object.defineProperty(S,"FileOperationPatternKind",{enumerable:!0,get:function(){return kl.FileOperationPatternKind}});Object.defineProperty(S,"DidCreateFilesNotification",{enumerable:!0,get:function(){return kl.DidCreateFilesNotification}});Object.defineProperty(S,"WillCreateFilesRequest",{enumerable:!0,get:function(){return kl.WillCreateFilesRequest}});Object.defineProperty(S,"DidRenameFilesNotification",{enumerable:!0,get:function(){return kl.DidRenameFilesNotification}});Object.defineProperty(S,"WillRenameFilesRequest",{enumerable:!0,get:function(){return kl.WillRenameFilesRequest}});Object.defineProperty(S,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return kl.DidDeleteFilesNotification}});Object.defineProperty(S,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return kl.WillDeleteFilesRequest}});var ek=H2();Object.defineProperty(S,"UniquenessLevel",{enumerable:!0,get:function(){return ek.UniquenessLevel}});Object.defineProperty(S,"MonikerKind",{enumerable:!0,get:function(){return ek.MonikerKind}});Object.defineProperty(S,"MonikerRequest",{enumerable:!0,get:function(){return ek.MonikerRequest}});var tk=B2();Object.defineProperty(S,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return tk.TypeHierarchyPrepareRequest}});Object.defineProperty(S,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return tk.TypeHierarchySubtypesRequest}});Object.defineProperty(S,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return tk.TypeHierarchySupertypesRequest}});var K2=q2();Object.defineProperty(S,"InlineValueRequest",{enumerable:!0,get:function(){return K2.InlineValueRequest}});Object.defineProperty(S,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return K2.InlineValueRefreshRequest}});var ik=W2();Object.defineProperty(S,"InlayHintRequest",{enumerable:!0,get:function(){return ik.InlayHintRequest}});Object.defineProperty(S,"InlayHintResolveRequest",{enumerable:!0,get:function(){return ik.InlayHintResolveRequest}});Object.defineProperty(S,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return ik.InlayHintRefreshRequest}});var Tg=Z2();Object.defineProperty(S,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return Tg.DiagnosticServerCancellationData}});Object.defineProperty(S,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return Tg.DocumentDiagnosticReportKind}});Object.defineProperty(S,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return Tg.DocumentDiagnosticRequest}});Object.defineProperty(S,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return Tg.WorkspaceDiagnosticRequest}});Object.defineProperty(S,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return Tg.DiagnosticRefreshRequest}});var Co=$2();Object.defineProperty(S,"NotebookCellKind",{enumerable:!0,get:function(){return Co.NotebookCellKind}});Object.defineProperty(S,"ExecutionSummary",{enumerable:!0,get:function(){return Co.ExecutionSummary}});Object.defineProperty(S,"NotebookCell",{enumerable:!0,get:function(){return Co.NotebookCell}});Object.defineProperty(S,"NotebookDocument",{enumerable:!0,get:function(){return Co.NotebookDocument}});Object.defineProperty(S,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return Co.NotebookDocumentSyncRegistrationType}});Object.defineProperty(S,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return Co.DidOpenNotebookDocumentNotification}});Object.defineProperty(S,"NotebookCellArrayChange",{enumerable:!0,get:function(){return Co.NotebookCellArrayChange}});Object.defineProperty(S,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return Co.DidChangeNotebookDocumentNotification}});Object.defineProperty(S,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return Co.DidSaveNotebookDocumentNotification}});Object.defineProperty(S,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return Co.DidCloseNotebookDocumentNotification}});var Q2;(function(n){function e(t){let i=t;return Xi.string(i.language)||Xi.string(i.scheme)||Xi.string(i.pattern)}n.is=e})(Q2=S.TextDocumentFilter||(S.TextDocumentFilter={}));var V2;(function(n){function e(t){let i=t;return Xi.objectLiteral(i)&&(Xi.string(i.notebookType)||Xi.string(i.scheme)||Xi.string(i.pattern))}n.is=e})(V2=S.NotebookDocumentFilter||(S.NotebookDocumentFilter={}));var eY;(function(n){function e(t){let i=t;return Xi.objectLiteral(i)&&(Xi.string(i.notebook)||V2.is(i.notebook))&&(i.language===void 0||Xi.string(i.language))}n.is=e})(eY=S.NotebookCellTextDocumentFilter||(S.NotebookCellTextDocumentFilter={}));var tY;(function(n){function e(t){if(!Array.isArray(t))return!1;for(let i of t)if(!Xi.string(i)&&!Q2.is(i)&&!eY.is(i))return!1;return!0}n.is=e})(tY=S.DocumentSelector||(S.DocumentSelector={}));var Vse;(function(n){n.method="client/registerCapability",n.messageDirection=oe.MessageDirection.serverToClient,n.type=new oe.ProtocolRequestType(n.method)})(Vse=S.RegistrationRequest||(S.RegistrationRequest={}));var eae;(function(n){n.method="client/unregisterCapability",n.messageDirection=oe.MessageDirection.serverToClient,n.type=new oe.ProtocolRequestType(n.method)})(eae=S.UnregistrationRequest||(S.UnregistrationRequest={}));var tae;(function(n){n.Create="create",n.Rename="rename",n.Delete="delete"})(tae=S.ResourceOperationKind||(S.ResourceOperationKind={}));var iae;(function(n){n.Abort="abort",n.Transactional="transactional",n.TextOnlyTransactional="textOnlyTransactional",n.Undo="undo"})(iae=S.FailureHandlingKind||(S.FailureHandlingKind={}));var nae;(function(n){n.UTF8="utf-8",n.UTF16="utf-16",n.UTF32="utf-32"})(nae=S.PositionEncodingKind||(S.PositionEncodingKind={}));var rae;(function(n){function e(t){let i=t;return i&&Xi.string(i.id)&&i.id.length>0}n.hasId=e})(rae=S.StaticRegistrationOptions||(S.StaticRegistrationOptions={}));var oae;(function(n){function e(t){let i=t;return i&&(i.documentSelector===null||tY.is(i.documentSelector))}n.is=e})(oae=S.TextDocumentRegistrationOptions||(S.TextDocumentRegistrationOptions={}));var sae;(function(n){function e(i){let r=i;return Xi.objectLiteral(r)&&(r.workDoneProgress===void 0||Xi.boolean(r.workDoneProgress))}n.is=e;function t(i){let r=i;return r&&Xi.boolean(r.workDoneProgress)}n.hasWorkDoneProgress=t})(sae=S.WorkDoneProgressOptions||(S.WorkDoneProgressOptions={}));var aae;(function(n){n.method="initialize",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(aae=S.InitializeRequest||(S.InitializeRequest={}));var lae;(function(n){n.unknownProtocolVersion=1})(lae=S.InitializeErrorCodes||(S.InitializeErrorCodes={}));var uae;(function(n){n.method="initialized",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolNotificationType(n.method)})(uae=S.InitializedNotification||(S.InitializedNotification={}));var cae;(function(n){n.method="shutdown",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType0(n.method)})(cae=S.ShutdownRequest||(S.ShutdownRequest={}));var dae;(function(n){n.method="exit",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolNotificationType0(n.method)})(dae=S.ExitNotification||(S.ExitNotification={}));var hae;(function(n){n.method="workspace/didChangeConfiguration",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolNotificationType(n.method)})(hae=S.DidChangeConfigurationNotification||(S.DidChangeConfigurationNotification={}));var gae;(function(n){n.Error=1,n.Warning=2,n.Info=3,n.Log=4})(gae=S.MessageType||(S.MessageType={}));var pae;(function(n){n.method="window/showMessage",n.messageDirection=oe.MessageDirection.serverToClient,n.type=new oe.ProtocolNotificationType(n.method)})(pae=S.ShowMessageNotification||(S.ShowMessageNotification={}));var fae;(function(n){n.method="window/showMessageRequest",n.messageDirection=oe.MessageDirection.serverToClient,n.type=new oe.ProtocolRequestType(n.method)})(fae=S.ShowMessageRequest||(S.ShowMessageRequest={}));var mae;(function(n){n.method="window/logMessage",n.messageDirection=oe.MessageDirection.serverToClient,n.type=new oe.ProtocolNotificationType(n.method)})(mae=S.LogMessageNotification||(S.LogMessageNotification={}));var bae;(function(n){n.method="telemetry/event",n.messageDirection=oe.MessageDirection.serverToClient,n.type=new oe.ProtocolNotificationType(n.method)})(bae=S.TelemetryEventNotification||(S.TelemetryEventNotification={}));var yae;(function(n){n.None=0,n.Full=1,n.Incremental=2})(yae=S.TextDocumentSyncKind||(S.TextDocumentSyncKind={}));var vae;(function(n){n.method="textDocument/didOpen",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolNotificationType(n.method)})(vae=S.DidOpenTextDocumentNotification||(S.DidOpenTextDocumentNotification={}));var wae;(function(n){function e(i){let r=i;return r!=null&&typeof r.text=="string"&&r.range!==void 0&&(r.rangeLength===void 0||typeof r.rangeLength=="number")}n.isIncremental=e;function t(i){let r=i;return r!=null&&typeof r.text=="string"&&r.range===void 0&&r.rangeLength===void 0}n.isFull=t})(wae=S.TextDocumentContentChangeEvent||(S.TextDocumentContentChangeEvent={}));var xae;(function(n){n.method="textDocument/didChange",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolNotificationType(n.method)})(xae=S.DidChangeTextDocumentNotification||(S.DidChangeTextDocumentNotification={}));var Cae;(function(n){n.method="textDocument/didClose",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolNotificationType(n.method)})(Cae=S.DidCloseTextDocumentNotification||(S.DidCloseTextDocumentNotification={}));var Sae;(function(n){n.method="textDocument/didSave",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolNotificationType(n.method)})(Sae=S.DidSaveTextDocumentNotification||(S.DidSaveTextDocumentNotification={}));var Dae;(function(n){n.Manual=1,n.AfterDelay=2,n.FocusOut=3})(Dae=S.TextDocumentSaveReason||(S.TextDocumentSaveReason={}));var Tae;(function(n){n.method="textDocument/willSave",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolNotificationType(n.method)})(Tae=S.WillSaveTextDocumentNotification||(S.WillSaveTextDocumentNotification={}));var kae;(function(n){n.method="textDocument/willSaveWaitUntil",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(kae=S.WillSaveTextDocumentWaitUntilRequest||(S.WillSaveTextDocumentWaitUntilRequest={}));var Pae;(function(n){n.method="workspace/didChangeWatchedFiles",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolNotificationType(n.method)})(Pae=S.DidChangeWatchedFilesNotification||(S.DidChangeWatchedFilesNotification={}));var Rae;(function(n){n.Created=1,n.Changed=2,n.Deleted=3})(Rae=S.FileChangeType||(S.FileChangeType={}));var _ae;(function(n){function e(t){let i=t;return Xi.objectLiteral(i)&&(X2.URI.is(i.baseUri)||X2.WorkspaceFolder.is(i.baseUri))&&Xi.string(i.pattern)}n.is=e})(_ae=S.RelativePattern||(S.RelativePattern={}));var Eae;(function(n){n.Create=1,n.Change=2,n.Delete=4})(Eae=S.WatchKind||(S.WatchKind={}));var Iae;(function(n){n.method="textDocument/publishDiagnostics",n.messageDirection=oe.MessageDirection.serverToClient,n.type=new oe.ProtocolNotificationType(n.method)})(Iae=S.PublishDiagnosticsNotification||(S.PublishDiagnosticsNotification={}));var Lae;(function(n){n.Invoked=1,n.TriggerCharacter=2,n.TriggerForIncompleteCompletions=3})(Lae=S.CompletionTriggerKind||(S.CompletionTriggerKind={}));var Fae;(function(n){n.method="textDocument/completion",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Fae=S.CompletionRequest||(S.CompletionRequest={}));var Mae;(function(n){n.method="completionItem/resolve",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Mae=S.CompletionResolveRequest||(S.CompletionResolveRequest={}));var jae;(function(n){n.method="textDocument/hover",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(jae=S.HoverRequest||(S.HoverRequest={}));var Oae;(function(n){n.Invoked=1,n.TriggerCharacter=2,n.ContentChange=3})(Oae=S.SignatureHelpTriggerKind||(S.SignatureHelpTriggerKind={}));var Aae;(function(n){n.method="textDocument/signatureHelp",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Aae=S.SignatureHelpRequest||(S.SignatureHelpRequest={}));var Nae;(function(n){n.method="textDocument/definition",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Nae=S.DefinitionRequest||(S.DefinitionRequest={}));var Hae;(function(n){n.method="textDocument/references",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Hae=S.ReferencesRequest||(S.ReferencesRequest={}));var Bae;(function(n){n.method="textDocument/documentHighlight",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Bae=S.DocumentHighlightRequest||(S.DocumentHighlightRequest={}));var qae;(function(n){n.method="textDocument/documentSymbol",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(qae=S.DocumentSymbolRequest||(S.DocumentSymbolRequest={}));var Wae;(function(n){n.method="textDocument/codeAction",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Wae=S.CodeActionRequest||(S.CodeActionRequest={}));var Yae;(function(n){n.method="codeAction/resolve",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Yae=S.CodeActionResolveRequest||(S.CodeActionResolveRequest={}));var Zae;(function(n){n.method="workspace/symbol",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Zae=S.WorkspaceSymbolRequest||(S.WorkspaceSymbolRequest={}));var Jae;(function(n){n.method="workspaceSymbol/resolve",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Jae=S.WorkspaceSymbolResolveRequest||(S.WorkspaceSymbolResolveRequest={}));var Uae;(function(n){n.method="textDocument/codeLens",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Uae=S.CodeLensRequest||(S.CodeLensRequest={}));var $ae;(function(n){n.method="codeLens/resolve",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})($ae=S.CodeLensResolveRequest||(S.CodeLensResolveRequest={}));var Xae;(function(n){n.method="workspace/codeLens/refresh",n.messageDirection=oe.MessageDirection.serverToClient,n.type=new oe.ProtocolRequestType0(n.method)})(Xae=S.CodeLensRefreshRequest||(S.CodeLensRefreshRequest={}));var Gae;(function(n){n.method="textDocument/documentLink",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Gae=S.DocumentLinkRequest||(S.DocumentLinkRequest={}));var zae;(function(n){n.method="documentLink/resolve",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(zae=S.DocumentLinkResolveRequest||(S.DocumentLinkResolveRequest={}));var Kae;(function(n){n.method="textDocument/formatting",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Kae=S.DocumentFormattingRequest||(S.DocumentFormattingRequest={}));var Qae;(function(n){n.method="textDocument/rangeFormatting",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Qae=S.DocumentRangeFormattingRequest||(S.DocumentRangeFormattingRequest={}));var Vae;(function(n){n.method="textDocument/onTypeFormatting",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(Vae=S.DocumentOnTypeFormattingRequest||(S.DocumentOnTypeFormattingRequest={}));var ele;(function(n){n.Identifier=1})(ele=S.PrepareSupportDefaultBehavior||(S.PrepareSupportDefaultBehavior={}));var tle;(function(n){n.method="textDocument/rename",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(tle=S.RenameRequest||(S.RenameRequest={}));var ile;(function(n){n.method="textDocument/prepareRename",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(ile=S.PrepareRenameRequest||(S.PrepareRenameRequest={}));var nle;(function(n){n.method="workspace/executeCommand",n.messageDirection=oe.MessageDirection.clientToServer,n.type=new oe.ProtocolRequestType(n.method)})(nle=S.ExecuteCommandRequest||(S.ExecuteCommandRequest={}));var rle;(function(n){n.method="workspace/applyEdit",n.messageDirection=oe.MessageDirection.serverToClient,n.type=new oe.ProtocolRequestType("workspace/applyEdit")})(rle=S.ApplyWorkspaceEditRequest||(S.ApplyWorkspaceEditRequest={}))});var rY=v(sv=>{"use strict";Object.defineProperty(sv,"__esModule",{value:!0});sv.createProtocolConnection=void 0;var nY=wl();function ole(n,e,t,i){return nY.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,nY.createMessageConnection)(n,e,t,i)}sv.createProtocolConnection=ole});var oY=v(wn=>{"use strict";var sle=wn&&wn.__createBinding||(Object.create?function(n,e,t,i){i===void 0&&(i=t);var r=Object.getOwnPropertyDescriptor(e,t);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,i,r)}:function(n,e,t,i){i===void 0&&(i=t),n[i]=e[t]}),av=wn&&wn.__exportStar||function(n,e){for(var t in n)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&sle(e,n,t)};Object.defineProperty(wn,"__esModule",{value:!0});wn.LSPErrorCodes=wn.createProtocolConnection=void 0;av(wl(),wn);av((ae(),Jo(Vy)),wn);av(ti(),wn);av(iY(),wn);var ale=rY();Object.defineProperty(wn,"createProtocolConnection",{enumerable:!0,get:function(){return ale.createProtocolConnection}});var lle;(function(n){n.lspReservedErrorRangeStart=-32899,n.RequestFailed=-32803,n.ServerCancelled=-32802,n.ContentModified=-32801,n.RequestCancelled=-32800,n.lspReservedErrorRangeEnd=-32800})(lle=wn.LSPErrorCodes||(wn.LSPErrorCodes={}))});var aY=v(So=>{"use strict";var ule=So&&So.__createBinding||(Object.create?function(n,e,t,i){i===void 0&&(i=t);var r=Object.getOwnPropertyDescriptor(e,t);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,i,r)}:function(n,e,t,i){i===void 0&&(i=t),n[i]=e[t]}),sY=So&&So.__exportStar||function(n,e){for(var t in n)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&ule(e,n,t)};Object.defineProperty(So,"__esModule",{value:!0});So.createProtocolConnection=void 0;var cle=YT();sY(YT(),So);sY(oY(),So);function dle(n,e,t,i){return(0,cle.createMessageConnection)(n,e,t,i)}So.createProtocolConnection=dle});var uY=v((aTe,lY)=>{"use strict";lY.exports=aY()});var p,$=D(()=>{"use strict";p=sr(uY())});function le(n){return Array.isArray(n)?n:n==null?[]:[n]}function te(n){return!Array.isArray(n)||n.length===0}function hle(n,e){return ne[1]?-1:0}function kg(n,e){let t=0,i=e.length-1;for(;t<=i;){let r=(t+i)/2|0,o=hle(n,e[r]);if(o<0)t=r+1;else if(o>0)i=r-1;else return!0}return!1}function cY(n,e,t){return gle(n.length,i=>t(n[i],e))}function gle(n,e){let t=0,i=n-1;for(;t<=i;){let r=(t+i)/2|0,o=e(r);if(o<0)t=r+1;else if(o>0)i=r-1;else return r}return-(t+1)}function Pg(n,e){for(let t of e)if(n.includes(t))return!0;return!1}function lv(n,e){let t=[[],[]];for(let i of n)e(i)?t[0].push(i):t[1].push(i);return t}function dY(n,e){let t=[[],[]];return n.forEach(i=>{e(i)?t[0].push(i):t[1].push(i)}),t}function wi(n,e){if(!e)return n.filter((i,r)=>n.indexOf(i)===r);let t=Object.create(null);return n.filter(i=>{let r=e(i);return t[r]?!1:(t[r]=!0,!0)})}var Se=D(()=>{"use strict"});var Rg=D(()=>{"use strict"});function xr(n){return n instanceof Error?n.message:n.toString()}function hY(n){let e=parseInt(n,10);return isNaN(e)?void 0:e}function se(n){return n??""}function ok(n){return global.Buffer.from(n).toString("base64")}function gY(n){return kg(n,ble)?!0:n===95||n===46||n===64}function pY(n){return n>=127462&&n<=127487||n===8986||n===8987||n===9200||n===9203||n>=9728&&n<=10175||n===11088||n===11093||n>=127744&&n<=128591||n>=128640&&n<=128764||n>=128992&&n<=129008||n>=129280&&n<=129535||n>=129648&&n<=129782}function fY(n,e){let t=[];for(let i=0;i=55296&&n<=56319}function cv(n){return n>=56320&&n<=57343}function de(n,e=0){if(e===0)return Buffer.byteLength(n,mle);let t=0,i=0;for(let r of n){let o=r.codePointAt(0);i>=e&&(t+=dv(o)),i+=o>=rk?2:1}return t}function rt(n,e){let t=0,i,r,o=Math.min(e,n.length);for(let s=0;s0?n[0].toUpperCase()+n.slice(1):""}function Mt(n,e){if(e==0)return 0;let t=0,i=0;for(let r of n){let o=r.codePointAt(0);if(o>=rk?(t+=2,i+=4):(t+=1,i+=dv(o)),i>=e)break}return t}function dv(n){return n=65&&n<=90||n>=97&&n<=122}function mY(n,e){return e&&n.endsWith(` +`)?n.slice(0,-1).split(` +`):n.split(` +`)}function yle(n){for(let e=0,t=n.length;e=65&&i<=90)return!0}return!1}function vle(n,e){if(n===e)return!0;let t=e.charCodeAt(0);return t>=65&&t<=90&&t+32===n.charCodeAt(0)}function bY(n,e){if(n.length>e.length)return-1;if(n.length===0)return 0;if(!yle(n))return e.toLowerCase().indexOf(n);let t=n.length,i=0;for(let r=0;r0&&(r=r-i,i=0)}return-1}function ra(n,e){e=e??n.length;let t=new Uint8Array(e),i=!0,r;for(let o=0;o1&&(i=!1),t[o]=a,r=s}return o=>{if(o===0)return 0;if(i)return Math.min(o,e);let s=0;for(let a=0;a{"use strict";Se();Rg();ple=128,fle=2048,rk=65536,mle="utf8",ble=[[48,57],[65,90],[97,122]]});function xle(n){return!!(n instanceof Ct||n instanceof Error&&n.message.includes("transport disconnected"))}var yY,wle,sk,_,Re=D(()=>{"use strict";Ce();ee();Ti();Xe();Be();$();pe();yY=J("events"),wle=["BufWritePre"],sk=class{constructor(){this.handlers=new Map;this._bufnr=1;this._recentInserts=[];this._lastChange=0;this._insertMode=!1;this._pumAlignTop=!1;this._pumVisible=!1;this._completing=!1;this._requesting=!1;this._ready=!1;this.timeout=1e3}set requesting(e){this._requesting=e}get requesting(){return this._requesting}get ready(){return this._ready}set completing(e){this._completing=e,this._pumVisible=e}get completing(){return this._completing}get cursor(){return this._cursor??{bufnr:this._bufnr,col:1,lnum:1,insert:!1}}get bufnr(){return this._bufnr}get pumvisible(){return this._pumVisible}get pumAlignTop(){return this._pumAlignTop}get insertMode(){return this._insertMode}get lastChangeTs(){return this._lastChange}race(e,t){let i=[];return new Promise(r=>{if(Xt(t)){let o=setTimeout(()=>{Y(i),r(void 0)},t);i.push(p.Disposable.create(()=>{clearTimeout(o)}))}else p.CancellationToken.is(t)&&t.onCancellationRequested(()=>{Y(i),r(void 0)},null,i);e.forEach(o=>{this.on(o,(...s)=>{Y(i),r({name:o,args:s})},null,i)})})}async fire(e,t){if(e==="ready")this._ready=!0;else if(e=="InsertEnter")this._insertMode=!0;else if(e=="InsertLeave")this._last_pum_insert=void 0,this._insertMode=!1,this._pumVisible=!1,this._recentInserts=[];else if(e=="CursorHoldI"||e=="CursorMovedI")this._bufnr=t[0],this._insertMode||(this._insertMode=!0,this.fire("InsertEnter",[t[0]]));else if(e=="CursorHold"||e=="CursorMoved")this._bufnr=t[0],this._insertMode&&(this._insertMode=!1,this.fire("InsertLeave",[t[0]]));else if(e=="MenuPopupChanged")this._pumVisible=!0,this._pumAlignTop=t[1]>t[0].row;else if(e=="InsertCharPre")this._recentInserts.push([t[1],t[0]]);else if(e=="TextChanged")this._lastChange=Date.now();else if(e=="BufEnter")this._bufnr=t[0];else if(e=="TextChangedI"||e=="TextChangedP"){let r=t[1],o=zt(r.line??"",0,r.col-1),s;if(this._last_pum_insert!=null&&this._last_pum_insert==o?(s=[],e="TextChangedP"):s=this._recentInserts.filter(a=>a[0]==t[0]),this._last_pum_insert=void 0,this._bufnr=t[0],this._recentInserts=[],this._lastChange=Date.now(),r.pre=o,this._cursor=Object.freeze({bufnr:t[0],lnum:r.lnum,col:r.col,insert:!0}),s.length&&o.length){let a=o.slice(-1);s.findIndex(l=>l[1]==a)!==-1&&(r.insertChar=a,process.nextTick(()=>{this.fire("TextInsert",[...t,a])}))}}else if(e=="PumInsert"){this._last_pum_insert=t[0];return}if(e=="CursorMoved"||e=="CursorMovedI"){t.push(this._recentInserts.length>0);let r={bufnr:t[0],lnum:t[1][0],col:t[1][1],insert:e=="CursorMovedI"};if(this._last_pum_insert&&de(this._last_pum_insert)+1==r.col||this._cursor&&Fe(this._cursor,r))return;this._cursor=r}let i=this.handlers.get(e);if(i!=null&&i.length){let r=i.slice(),o=wle.includes(e);await Promise.allSettled(r.map(s=>(async()=>{let l;o&&(l=setTimeout(()=>{console.error(`Slow "${e}" handler detected`,s.stack),yY.error(`Slow "${e}" handler detected`,s.stack)},this.timeout));try{await s(t)}catch(u){xle(u)||yY.error(`Error on event: ${e}`,u)}clearTimeout(l)})()))}}on(e,t,i,r){if(Array.isArray(e)){let o=r||[];for(let s of e)this.on(s,t,i,o);return p.Disposable.create(()=>{Y(o)})}else{let o=this.handlers.get(e)||[],s=l=>new Promise((u,c)=>{try{Promise.resolve(t.apply(i??null,l)).then(()=>{u(void 0)},d=>{c(d)})}catch(d){c(d)}});Error.captureStackTrace(s),o.push(s),this.handlers.set(e,o);let a=p.Disposable.create(()=>{let l=o.indexOf(s);l!==-1&&o.splice(l,1)});return Array.isArray(r)&&r.push(a),a}}};_=new sk});var vY=v((xTe,Cle)=>{Cle.exports={name:"coc.nvim-master",version:"0.0.82",description:"LSP based intellisense engine for neovim & vim8.",main:"./build/index.js",engines:{node:">=14.14.0"},type:"commonjs",scripts:{lint:"eslint . --ext .ts --quiet","lint:typecheck":"tsc -p tsconfig.json",build:"node esbuild.js",test:"./node_modules/.bin/jest --forceExit","test-build":"./node_modules/.bin/jest --coverage --forceExit",prepare:"node esbuild.js"},repository:{type:"git",url:"git+https://github.com/neoclide/coc.nvim.git"},keywords:["complete","neovim"],author:"Qiming Zhao ",bugs:{url:"https://github.com/neoclide/coc.nvim/issues"},homepage:"https://github.com/neoclide/coc.nvim#readme",jest:{globals:{__TEST__:!0},projects:[""],watchman:!1,clearMocks:!0,globalSetup:"./jest.js",testEnvironment:"node",coveragePathIgnorePatterns:["/src/__tests__/*"],moduleFileExtensions:["ts","tsx","json","js"],transform:{"^.+\\.tsx?$":["@swc/jest"]},testRegex:"src/__tests__/.*\\.(test|spec)\\.ts$",coverageReporters:["text","lcov"],coverageDirectory:"./coverage/"},devDependencies:{"@swc/core":"^1.3.21","@swc/jest":"^0.2.23","@types/bser":"^2.0.1","@types/cli-table":"^0.3.0","@types/debounce":"^3.0.0","@types/fb-watchman":"^2.0.0","@types/follow-redirects":"^1.14.1","@types/glob":"^8.0.1","@types/jest":"^27.0.3","@types/marked":"^4.0.1","@types/minimatch":"^5.1.2","@types/mkdirp":"^1.0.1","@types/node":"14.14","@types/semver":"^7.3.4","@types/tar":"^4.0.5","@types/unidecode":"^0.1.1","@types/uuid":"^8.3.0","@types/which":"^1.3.2","@typescript-eslint/eslint-plugin":"^5.44.0","@typescript-eslint/parser":"^5.44.0",browserslist:"^4.21.4",bser:"^2.1.1",esbuild:"^0.15.13",eslint:"^8.28.0","eslint-plugin-jest":"^27.1.5","eslint-plugin-jsdoc":"^39.6.2",jest:"29.3.1",typescript:"^4.9.3","vscode-languageserver":"^8.0.2"},dependencies:{"@chemzqm/neovim":"^6.1.1","ansi-styles":"^5.0.0",bytes:"^3.1.0","caniuse-lite":"^1.0.30001431","cli-table":"^0.3.4","content-disposition":"^0.5.3",debounce:"^1.2.0","decompress-response":"^6.0.0","fast-diff":"^1.2.0","fb-watchman":"^2.0.1","follow-redirects":"^1.15.2",glob:"^8.1.0","http-proxy-agent":"^5.0.0","https-proxy-agent":"^5.0.0","iconv-lite":"^0.6.3","jsonc-parser":"^3.0.0",marked:"^4.0.12",minimatch:"^5.1.0",semver:"^7.3.2","strip-ansi":"^6.0.0",tar:"^6.1.9",tslib:"^2.0.3",unidecode:"^0.1.8","unzip-stream":"^0.3.1",uuid:"^7.0.3","vscode-languageserver-protocol":"^3.17.2","vscode-languageserver-textdocument":"^1.0.5","vscode-languageserver-types":"^3.17.2","vscode-uri":"^3.0.3",which:"^2.0.2"}}});var wY,Pl,Rl,ai,ak,_g,Eg,lk,Kn,xY,Do,CY,Jt=D(()=>{"use strict";wY=sr(vY());ee();ce();Pl=128,Rl=wY.version,ai=process.env.VIM_NODE_RPC=="1",ak=34,_g="CocFloating",Eg="coc-settings.json",lk=ye(process.env.COC_VIMCONFIG,R.join(Et.homedir(),".vim")),Kn=ye(process.env.COC_DATA_HOME,R.join(Et.homedir(),".config/coc")),xY=R.join(R.normalize(lk),Eg),Do=ge(R.dirname(__dirname),R.resolve(__dirname,"../..")),CY="watchman"});function Lg(n,e=!1){let t=n.length,i=0,r="",o=0,s=16,a=0,l=0,u=0,c=0,d=0;function h(C,P){let T=0,O=0;for(;T=48&&j<=57)O=O*16+j-48;else if(j>=65&&j<=70)O=O*16+j-65+10;else if(j>=97&&j<=102)O=O*16+j-97+10;else break;i++,T++}return T=t){C+=n.substring(P,i),d=2;break}let T=n.charCodeAt(i);if(T===34){C+=n.substring(P,i),i++;break}if(T===92){if(C+=n.substring(P,i),i++,i>=t){d=2;break}switch(n.charCodeAt(i++)){case 34:C+='"';break;case 92:C+="\\";break;case 47:C+="/";break;case 98:C+="\b";break;case 102:C+="\f";break;case 110:C+=` +`;break;case 114:C+="\r";break;case 116:C+=" ";break;case 117:let j=h(4,!0);j>=0?C+=String.fromCharCode(j):d=4;break;default:d=5}P=i;continue}if(T>=0&&T<=31)if(Ig(T)){C+=n.substring(P,i),d=2;break}else d=6;i++}return C}function y(){if(r="",d=0,o=i,l=a,c=u,i>=t)return o=t,s=17;let C=n.charCodeAt(i);if(uk(C)){do i++,r+=String.fromCharCode(C),C=n.charCodeAt(i);while(uk(C));return s=15}if(Ig(C))return i++,r+=String.fromCharCode(C),C===13&&n.charCodeAt(i)===10&&(i++,r+=` +`),a++,u=i,s=14;switch(C){case 123:return i++,s=1;case 125:return i++,s=2;case 91:return i++,s=3;case 93:return i++,s=4;case 58:return i++,s=6;case 44:return i++,s=5;case 34:return i++,r=m(),s=10;case 47:let P=i-1;if(n.charCodeAt(i+1)===47){for(i+=2;i=12&&C<=15);return C}return{setPosition:g,getPosition:()=>i,scan:e?x:y,getToken:()=>s,getTokenValue:()=>r,getTokenOffset:()=>o,getTokenLength:()=>i-o,getTokenStartLine:()=>l,getTokenStartCharacter:()=>o-c,getTokenError:()=>d}}function uk(n){return n===32||n===9}function Ig(n){return n===10||n===13}function Cc(n){return n>=48&&n<=57}var SY,hv=D(()=>{"use strict";(function(n){n[n.lineFeed=10]="lineFeed",n[n.carriageReturn=13]="carriageReturn",n[n.space=32]="space",n[n._0=48]="_0",n[n._1=49]="_1",n[n._2=50]="_2",n[n._3=51]="_3",n[n._4=52]="_4",n[n._5=53]="_5",n[n._6=54]="_6",n[n._7=55]="_7",n[n._8=56]="_8",n[n._9=57]="_9",n[n.a=97]="a",n[n.b=98]="b",n[n.c=99]="c",n[n.d=100]="d",n[n.e=101]="e",n[n.f=102]="f",n[n.g=103]="g",n[n.h=104]="h",n[n.i=105]="i",n[n.j=106]="j",n[n.k=107]="k",n[n.l=108]="l",n[n.m=109]="m",n[n.n=110]="n",n[n.o=111]="o",n[n.p=112]="p",n[n.q=113]="q",n[n.r=114]="r",n[n.s=115]="s",n[n.t=116]="t",n[n.u=117]="u",n[n.v=118]="v",n[n.w=119]="w",n[n.x=120]="x",n[n.y=121]="y",n[n.z=122]="z",n[n.A=65]="A",n[n.B=66]="B",n[n.C=67]="C",n[n.D=68]="D",n[n.E=69]="E",n[n.F=70]="F",n[n.G=71]="G",n[n.H=72]="H",n[n.I=73]="I",n[n.J=74]="J",n[n.K=75]="K",n[n.L=76]="L",n[n.M=77]="M",n[n.N=78]="N",n[n.O=79]="O",n[n.P=80]="P",n[n.Q=81]="Q",n[n.R=82]="R",n[n.S=83]="S",n[n.T=84]="T",n[n.U=85]="U",n[n.V=86]="V",n[n.W=87]="W",n[n.X=88]="X",n[n.Y=89]="Y",n[n.Z=90]="Z",n[n.asterisk=42]="asterisk",n[n.backslash=92]="backslash",n[n.closeBrace=125]="closeBrace",n[n.closeBracket=93]="closeBracket",n[n.colon=58]="colon",n[n.comma=44]="comma",n[n.dot=46]="dot",n[n.doubleQuote=34]="doubleQuote",n[n.minus=45]="minus",n[n.openBrace=123]="openBrace",n[n.openBracket=91]="openBracket",n[n.plus=43]="plus",n[n.slash=47]="slash",n[n.formFeed=12]="formFeed",n[n.tab=9]="tab"})(SY||(SY={}))});function ck(n,e,t){let i,r,o,s,a;if(e){for(s=e.offset,a=s+e.length,o=s;o>0&&!Fg(n,o-1);)o--;let C=a;for(;C1?Sc(l,u)+Sc(d,i+c):l+Sc(d,i+c)}function m(){let C=h.scan();for(u=0;C===15||C===14;)C===14&&t.keepLines?u+=1:C===14&&(u=1),C=h.scan();return g=C===16||h.getTokenError()!==0,C}let y=[];function w(C,P,T){!g&&(!e||Ps)&&n.substring(P,T)!==C&&y.push({offset:P,length:T-P,content:C})}let x=m();if(t.keepLines&&u>0&&w(Sc(l,u),0,0),x!==17){let C=h.getTokenOffset()+o,P=Sc(d,i);w(P,o,C)}for(;x!==17;){let C=h.getTokenOffset()+h.getTokenLength()+o,P=m(),T="",O=!1;for(;u===0&&(P===12||P===13);){let q=h.getTokenOffset()+o;w(" ",C,q),C=h.getTokenOffset()+h.getTokenLength()+o,O=P===12,T=O?f():"",P=m()}if(P===2)x!==1&&c--,t.keepLines&&u>0||!t.keepLines&&x!==1?T=f():t.keepLines&&(T=" ");else if(P===4)x!==3&&c--,t.keepLines&&u>0||!t.keepLines&&x!==3?T=f():t.keepLines&&(T=" ");else{switch(x){case 3:case 1:c++,t.keepLines&&u>0||!t.keepLines?T=f():T=" ";break;case 5:t.keepLines&&u>0||!t.keepLines?T=f():T=" ";break;case 12:T=f();break;case 13:u>0?T=f():O||(T=" ");break;case 6:t.keepLines&&u>0?T=f():O||(T=" ");break;case 10:t.keepLines&&u>0?T=f():P===6&&!O&&(T="");break;case 7:case 8:case 9:case 11:case 2:case 4:t.keepLines&&u>0?T=f():(P===12||P===13)&&!O?T=" ":P!==5&&P!==17&&(g=!0);break;case 16:g=!0;break}u>0&&(P===12||P===13)&&(T=f())}P===17&&(t.keepLines&&u>0?T=f():T=t.insertFinalNewline?l:"");let j=h.getTokenOffset()+o;w(T,C,j),x=P}return y}function Sc(n,e){let t="";for(let i=0;i{"use strict";hv()});function DY(n,e=[],t=Mg.DEFAULT){let i=null,r=[],o=[];function s(l){Array.isArray(r)?r.push(l):i!==null&&(r[i]=l)}return pv(n,{onObjectBegin:()=>{let l={};s(l),o.push(r),r=l,i=null},onObjectProperty:l=>{i=l},onObjectEnd:()=>{r=o.pop()},onArrayBegin:()=>{let l=[];s(l),o.push(r),r=l,i=null},onArrayEnd:()=>{r=o.pop()},onLiteralValue:s,onError:(l,u,c)=>{e.push({error:l,offset:u,length:c})}},t),r[0]}function hk(n,e=[],t=Mg.DEFAULT){let i={type:"array",offset:-1,length:-1,children:[],parent:void 0};function r(l){i.type==="property"&&(i.length=l-i.offset,i=i.parent)}function o(l){return i.children.push(l),l}pv(n,{onObjectBegin:l=>{i=o({type:"object",offset:l,length:-1,parent:i,children:[]})},onObjectProperty:(l,u,c)=>{i=o({type:"property",offset:u,length:-1,parent:i,children:[]}),i.children.push({type:"string",value:l,offset:u,length:c,parent:i})},onObjectEnd:(l,u)=>{r(l+u),i.length=l+u-i.offset,i=i.parent,r(l+u)},onArrayBegin:(l,u)=>{i=o({type:"array",offset:l,length:-1,parent:i,children:[]})},onArrayEnd:(l,u)=>{i.length=l+u-i.offset,i=i.parent,r(l+u)},onLiteralValue:(l,u,c)=>{o({type:Ple(l),offset:u,length:c,parent:i,value:l}),r(u+c)},onSeparator:(l,u,c)=>{i.type==="property"&&(l===":"?i.colonOffset=u:l===","&&r(u))},onError:(l,u,c)=>{e.push({error:l,offset:u,length:c})}},t);let a=i.children[0];return a&&delete a.parent,a}function gv(n,e){if(!n)return;let t=n;for(let i of e)if(typeof i=="string"){if(t.type!=="object"||!Array.isArray(t.children))return;let r=!1;for(let o of t.children)if(Array.isArray(o.children)&&o.children[0].value===i&&o.children.length===2){t=o.children[1],r=!0;break}if(!r)return}else{let r=i;if(t.type!=="array"||r<0||!Array.isArray(t.children)||r>=t.children.length)return;t=t.children[r]}return t}function pv(n,e,t=Mg.DEFAULT){let i=Lg(n,!1),r=[];function o(B){return B?()=>B(i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter()):()=>!0}function s(B){return B?()=>B(i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter(),()=>r.slice()):()=>!0}function a(B){return B?fe=>B(fe,i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter()):()=>!0}function l(B){return B?fe=>B(fe,i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter(),()=>r.slice()):()=>!0}let u=s(e.onObjectBegin),c=l(e.onObjectProperty),d=o(e.onObjectEnd),h=s(e.onArrayBegin),g=o(e.onArrayEnd),f=l(e.onLiteralValue),m=a(e.onSeparator),y=o(e.onComment),w=a(e.onError),x=t&&t.disallowComments,C=t&&t.allowTrailingComma;function P(){for(;;){let B=i.scan();switch(i.getTokenError()){case 4:T(14);break;case 5:T(15);break;case 3:T(13);break;case 1:x||T(11);break;case 2:T(12);break;case 6:T(16);break}switch(B){case 12:case 13:x?T(10):y();break;case 16:T(1);break;case 15:case 14:break;default:return B}}}function T(B,fe=[],ve=[]){if(w(B),fe.length+ve.length>0){let Le=i.getToken();for(;Le!==17;){if(fe.indexOf(Le)!==-1){P();break}else if(ve.indexOf(Le)!==-1)break;Le=P()}}}function O(B){let fe=i.getTokenValue();return B?f(fe):(c(fe),r.push(fe)),P(),!0}function j(){switch(i.getToken()){case 11:let B=i.getTokenValue(),fe=Number(B);isNaN(fe)&&(T(2),fe=0),f(fe);break;case 7:f(null);break;case 8:f(!0);break;case 9:f(!1);break;default:return!1}return P(),!0}function q(){return i.getToken()!==10?(T(3,[],[2,5]),!1):(O(!1),i.getToken()===6?(m(":"),P(),z()||T(4,[],[2,5])):T(5,[],[2,5]),r.pop(),!0)}function K(){u(),P();let B=!1;for(;i.getToken()!==2&&i.getToken()!==17;){if(i.getToken()===5){if(B||T(4,[],[]),m(","),P(),i.getToken()===2&&C)break}else B&&T(6,[],[]);q()||T(4,[],[2,5]),B=!0}return d(),i.getToken()!==2?T(7,[2],[]):P(),!0}function X(){h(),P();let B=!0,fe=!1;for(;i.getToken()!==4&&i.getToken()!==17;){if(i.getToken()===5){if(fe||T(4,[],[]),m(","),P(),i.getToken()===4&&C)break}else fe&&T(6,[],[]);B?(r.push(0),B=!1):r[r.length-1]++,z()||T(4,[],[4,5]),fe=!0}return g(),B||r.pop(),i.getToken()!==4?T(8,[4],[]):P(),!0}function z(){switch(i.getToken()){case 3:return X();case 1:return K();case 10:return O(!0);default:return j()}}return P(),i.getToken()===17?t.allowEmptyContent?!0:(T(4,[],[]),!1):z()?(i.getToken()!==17&&T(9,[],[]),!0):(T(4,[],[]),!1)}function Ple(n){switch(typeof n){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(n){if(Array.isArray(n))return"array"}else return"null";return"object"}default:return"null"}}var Mg,gk=D(()=>{"use strict";hv();(function(n){n.DEFAULT={allowTrailingComma:!1}})(Mg||(Mg={}))});function TY(n,e,t,i){let r=e.slice(),s=hk(n,[]),a,l;for(;r.length>0&&(l=r.pop(),a=gv(s,r),a===void 0&&t!==void 0);)typeof l=="string"?t={[l]:t}:t=[t];if(a)if(a.type==="object"&&typeof l=="string"&&Array.isArray(a.children)){let u=gv(a,[l]);if(u!==void 0)if(t===void 0){if(!u.parent)throw new Error("Malformed AST");let c=a.children.indexOf(u.parent),d,h=u.parent.offset+u.parent.length;if(c>0){let g=a.children[c-1];d=g.offset+g.length}else d=a.offset+1,a.children.length>1&&(h=a.children[1].offset);return _l(n,{offset:d,length:h-d,content:""},i)}else return _l(n,{offset:u.offset,length:u.length,content:JSON.stringify(t)},i);else{if(t===void 0)return[];let c=`${JSON.stringify(l)}: ${JSON.stringify(t)}`,d=i.getInsertionIndex?i.getInsertionIndex(a.children.map(g=>g.children[0].value)):a.children.length,h;if(d>0){let g=a.children[d-1];h={offset:g.offset+g.length,length:0,content:","+c}}else a.children.length===0?h={offset:a.offset+1,length:0,content:c}:h={offset:a.offset+1,length:0,content:c+","};return _l(n,h,i)}}else if(a.type==="array"&&typeof l=="number"&&Array.isArray(a.children)){let u=l;if(u===-1){let c=`${JSON.stringify(t)}`,d;if(a.children.length===0)d={offset:a.offset+1,length:0,content:c};else{let h=a.children[a.children.length-1];d={offset:h.offset+h.length,length:0,content:","+c}}return _l(n,d,i)}else if(t===void 0&&a.children.length>=0){let c=l,d=a.children[c],h;if(a.children.length===1)h={offset:a.offset+1,length:a.length-2,content:""};else if(a.children.length-1===c){let g=a.children[c-1],f=g.offset+g.length,m=a.offset+a.length;h={offset:f,length:m-2-f,content:""}}else h={offset:d.offset,length:a.children[c+1].offset-d.offset,content:""};return _l(n,h,i)}else if(t!==void 0){let c,d=`${JSON.stringify(t)}`;if(!i.isArrayInsertion&&a.children.length>l){let h=a.children[l];c={offset:h.offset,length:h.length,content:d}}else if(a.children.length===0||l===0)c={offset:a.offset+1,length:0,content:a.children.length===0?d:d+","};else{let h=l>a.children.length?a.children.length:l,g=a.children[h-1];c={offset:g.offset+g.length,length:0,content:","+d}}return _l(n,c,i)}else throw new Error(`Can not ${t===void 0?"remove":i.isArrayInsertion?"insert":"modify"} Array index ${u} as length is not sufficient`)}else throw new Error(`Can not add ${typeof l!="number"?"index":"property"} to parent of type ${a.type}`);else{if(t===void 0)throw new Error("Can not delete in empty document");return _l(n,{offset:s?s.offset:0,length:s?s.length:0,content:JSON.stringify(t)},i)}}function _l(n,e,t){if(!t.formattingOptions)return[e];let i=fv(n,e),r=e.offset,o=e.offset+e.content.length;if(e.length===0||e.content.length===0){for(;r>0&&!Fg(i,r-1);)r--;for(;o=0;l--){let u=s[l];i=fv(i,u),r=Math.min(r,u.offset),o=Math.max(o,u.offset+u.length),o+=u.content.length-u.length}let a=n.length-(i.length-o)-r;return[{offset:r,length:a,content:i.substring(r,o)}]}function fv(n,e){return n.substring(0,e.offset)+e.content+n.substring(e.offset+e.length)}var kY=D(()=>{"use strict";dk();gk()});function LY(n){switch(n){case 1:return"InvalidSymbol";case 2:return"InvalidNumberFormat";case 3:return"PropertyNameExpected";case 4:return"ValueExpected";case 5:return"ColonExpected";case 6:return"CommaExpected";case 7:return"CloseBraceExpected";case 8:return"CloseBracketExpected";case 9:return"EndOfFileExpected";case 10:return"InvalidCommentToken";case 11:return"UnexpectedEndOfComment";case 12:return"UnexpectedEndOfString";case 13:return"UnexpectedEndOfNumber";case 14:return"InvalidUnicode";case 15:return"InvalidEscapeCharacter";case 16:return"InvalidCharacter"}return""}function FY(n,e,t,i){return TY(n,e,t,i)}function MY(n,e){let t=e.slice(0).sort((r,o)=>{let s=r.offset-o.offset;return s===0?r.length-o.length:s}),i=n.length;for(let r=t.length-1;r>=0;r--){let o=t[r];if(o.offset+o.length<=i)n=fv(n,o);else throw new Error("Overlapping edit");i=o.offset}return n}var PY,RY,EY,IY,_Y,jg=D(()=>{"use strict";dk();kY();hv();gk();(function(n){n[n.None=0]="None",n[n.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",n[n.UnexpectedEndOfString=2]="UnexpectedEndOfString",n[n.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",n[n.InvalidUnicode=4]="InvalidUnicode",n[n.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",n[n.InvalidCharacter=6]="InvalidCharacter"})(PY||(PY={}));(function(n){n[n.OpenBraceToken=1]="OpenBraceToken",n[n.CloseBraceToken=2]="CloseBraceToken",n[n.OpenBracketToken=3]="OpenBracketToken",n[n.CloseBracketToken=4]="CloseBracketToken",n[n.CommaToken=5]="CommaToken",n[n.ColonToken=6]="ColonToken",n[n.NullKeyword=7]="NullKeyword",n[n.TrueKeyword=8]="TrueKeyword",n[n.FalseKeyword=9]="FalseKeyword",n[n.StringLiteral=10]="StringLiteral",n[n.NumericLiteral=11]="NumericLiteral",n[n.LineCommentTrivia=12]="LineCommentTrivia",n[n.BlockCommentTrivia=13]="BlockCommentTrivia",n[n.LineBreakTrivia=14]="LineBreakTrivia",n[n.Trivia=15]="Trivia",n[n.Unknown=16]="Unknown",n[n.EOF=17]="EOF"})(RY||(RY={}));EY=DY,IY=pv;(function(n){n[n.InvalidSymbol=1]="InvalidSymbol",n[n.InvalidNumberFormat=2]="InvalidNumberFormat",n[n.PropertyNameExpected=3]="PropertyNameExpected",n[n.ValueExpected=4]="ValueExpected",n[n.ColonExpected=5]="ColonExpected",n[n.CommaExpected=6]="CommaExpected",n[n.CloseBraceExpected=7]="CloseBraceExpected",n[n.CloseBracketExpected=8]="CloseBracketExpected",n[n.EndOfFileExpected=9]="EndOfFileExpected",n[n.InvalidCommentToken=10]="InvalidCommentToken",n[n.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",n[n.UnexpectedEndOfString=12]="UnexpectedEndOfString",n[n.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",n[n.InvalidUnicode=14]="InvalidUnicode",n[n.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",n[n.InvalidCharacter=16]="InvalidCharacter"})(_Y||(_Y={}))});function Ele(n){let{platform:e}=n;return e==="win32"?3:e==="darwin"?1:e==="linux"?2:4}var pk,fk,eo,El,Il=D(()=>{"use strict";pk=Ele(process),fk=pk,eo=pk===3,El=pk===1});function Dc(n,e,t=!1){let i=mt(e,100);try{let r=F.watch(n,{persistent:!0,recursive:!1,encoding:"utf8"},()=>{i()});return t&&setTimeout(e,10),p.Disposable.create(()=>{i.clear(),r.close()})}catch{return p.Disposable.create(()=>{i.clear()})}}function to(n){try{let e=[],t=F.readFileSync(n,"utf8"),i=EY(t,e,{allowTrailingComma:!0});return e.length>0&&OY.error(`Error on parse json file ${n}`,e),i??{}}catch{return{}}}function oa(n,e){let t=R.dirname(n);F.existsSync(t)||(F.mkdirSync(t,{recursive:!0}),OY.info(`Creating directory ${t}`)),F.writeFileSync(n,JSON.stringify($e(e),null,2),"utf8")}async function jn(n){let e=null;try{e=await(0,st.promisify)(F.stat)(n)}catch{}return e}function Tc(n){return!n||!R.isAbsolute(n)||!F.existsSync(n)?!1:F.statSync(n).isDirectory()}async function yk(n){if(!!n)try{await(0,st.promisify)(F.rm)(n,{force:!0,recursive:!0})}catch{return}}async function vk(n){try{let e=await(0,st.promisify)(F.lstat)(n);return e.isFile()?1:e.isDirectory()?2:e.isSymbolicLink()?64:0}catch{return}}async function AY(n){if(!n)return!1;let e=await jn(n);if(!e||!e.isFile())return!1;let t=null;try{let{stdout:r}=await(0,st.promisify)(jY)("git rev-parse --show-toplevel",{cwd:R.dirname(n)});t=r.trim()}catch{}if(!t)return!1;let i=R.relative(t,n);try{let{stdout:r}=await(0,st.promisify)(jY)(`git check-ignore ${i}`,{cwd:t});return r.trim()==i}catch{}return!1}function Og(n,e){return te(e)?!1:e.some(t=>li(t,n)||si(n,t,{dot:!0}))}function Ag(n,e,t,i=!1,r=!0,o=[]){let s=ji(n);if(r&&t&&pt(t,s,!0)&&!Og(t,o)&&bk(t,e))return t;let a=s.split(R.sep);if(i){for(;a.length>0;){let l=a.join(R.sep);if(!Og(l,o)&&bk(l,e))return l;a.pop()}return null}else{let l=[a.shift()];for(let u of a){l.push(u);let c=l.join(R.sep);if(!Og(c,o)&&bk(c,e))return c}return null}}function NY(n,e,t){return new Promise((i,r)=>{if(te(e))return i(!1);let o;t&&(o=t.onCancellationRequested(()=>{r(new Ct)}));let s=!1,a=e.length==1?e[0]:`{${e.join(",")}}`,l=new ey.Glob(a,{nosort:!0,ignore:["node_modules/**",".git/**"],dot:!0,cwd:n,nodir:!0,absolute:!1},u=>{o&&o.dispose(),i(s)});l.on("match",()=>{o&&o.dispose(),s=!0,i(!0)}),l.on("end",()=>{o&&o.dispose(),i(s)})})}function bk(n,e){try{let t=F.readdirSync(n);for(let i of e)if(i.includes("*")?si.match(t,i,{nobrace:!0,noext:!0,nocomment:!0,nonegate:!0,dot:!0}).length!==0:t.includes(i))return!0}catch{}return!1}function Ile(n,e){try{let t=F.readdirSync(n);for(let i of e)if(i.includes("*")){let o=t.filter(si.filter(i,{nobrace:!0,noext:!0,nocomment:!0,nonegate:!0,dot:!0}));if(o.length>0)return o[0]}else{let o=t.find(s=>s===i);if(o)return o}}catch{}}function kc(n,e){let t=R.parse(e).root,i=le(n);for(;e&&e!==t;){let r=Ile(e,i);if(r)return R.join(e,r);e=R.dirname(e)}return null}function Ng(n,e){return new Promise((t,i)=>{F.readFile(n,e,(r,o)=>{r&&i(r),t(o)})})}function HY(n){let e,t=0;return new Promise((i,r)=>{F.createReadStream(n).on("error",o=>r(o)).on("data",o=>{for(e=0;ei(t))})}function sa(n,e,t){if(!F.existsSync(n))return Promise.reject(new Error(`file does not exist: ${n}`));let i=[],r=F.createReadStream(n,{encoding:"utf8"}),o=yo.createInterface({input:r,crlfDelay:1/0,terminal:!1}),s=0;return new Promise((a,l)=>{o.on("line",u=>{s>=e&&s<=t&&i.push(u),s==t&&o.close(),s=s+1}),o.on("close",()=>{a(i),r.close()}),o.on("error",l)})}function BY(n,e){if(!F.existsSync(n))return Promise.reject(new Error(`file does not exist: ${n}`));let t=F.createReadStream(n,{encoding:"utf8"}),i=yo.createInterface({input:t,crlfDelay:1/0,terminal:!1}),r=0,o="";return new Promise((s,a)=>{i.on("line",l=>{r==e&&(o=l,i.close(),t.close()),r=r+1}),i.on("close",()=>{s(o)}),i.on("error",a)})}async function qY(n,e,t){let i=A.file(n).toString();if(!F.existsSync(n))return Ze.create(i,M.create(0,0,0,0));let r=yo.createInterface({input:F.createReadStream(n,{encoding:"utf8"})}),o=0,s=await new Promise(a=>{let l=!1;r.on("line",u=>{if(u.includes(e)){l=!0,r.removeAllListeners(),r.close(),a(u);return}o=o+1}),r.on("close",()=>{l||a(void 0)})});if(s!=null){let a=t==null?0:s.indexOf(t);a==0&&(a=s.match(/^\s*/)[0].length);let l=V.create(o,a+(t?t.length:0));return Ze.create(i,M.create(V.create(o,a),l))}return Ze.create(i,M.create(0,0,0,0))}function li(n,e,t){return t=typeof t=="boolean"?t:eo||El,!n||!e?!1:(n=ji(n),e=ji(e),t?n.toLowerCase()===e.toLowerCase():n===e)}function Lle(n,e,t=eo||El){return t?n.toLowerCase().startsWith(e.toLowerCase()):n.startsWith(e)}async function Hg(n,e){await(0,st.promisify)(F.writeFile)(n,e,{encoding:"utf8"})}function Bg(n){return n.startsWith("file:")}function ji(n){return A.file(R.resolve(R.normalize(n))).fsPath}function pt(n,e,t=!1){let i=ji(n),r=ji(e);return li(i,r)?!!t:Lle(r,i)&&r[i.length]==R.sep}var OY,jY,mv,at=D(()=>{"use strict";jg();ae();Je();Ce();ce();$();Se();Ti();ce();Be();Il();OY=J("util-fs"),jY=fn.exec,mv=(r=>(r[r.Unknown=0]="Unknown",r[r.File=1]="File",r[r.Directory=2]="Directory",r[r.SymbolicLink=64]="SymbolicLink",r))(mv||{})});var io,qg=D(()=>{"use strict";Se();Jt();at();ce();io=class{constructor(e,t,i=5e3){this.maximum=i;this.file=R.join(t||Kn,e);let r=R.dirname(this.file);F.mkdirSync(r,{recursive:!0})}async load(){try{let e=await sa(this.file,0,this.maximum);if(e.length>this.maximum){let t=e.slice(0,this.maximum);return await Hg(this.file,t.join(` +`)),wi(t)}return wi(e)}catch{return[]}}loadSync(){try{let e=F.readFileSync(this.file,"utf8");return e=e.trim(),e.length?e.trim().split(` +`):[]}catch{return[]}}async add(e){let t;try{t=F.readFileSync(this.file),t[0]===239&&t[1]===187&&t[2]===191&&(t=t.slice(3)),t=Buffer.concat([Buffer.from(e,"utf8"),new Uint8Array([10]),t])}catch{t=Buffer.concat([Buffer.from(e,"utf8"),new Uint8Array([10])])}await(0,st.promisify)(F.writeFile)(this.file,t)}async remove(e){let t=await this.load(),i=t.length;t=t.filter(r=>r!=e),t.length!=i&&await Hg(this.file,t.join(` +`))}async clean(){try{await(0,st.promisify)(F.unlink)(this.file)}catch{}}}});var Wg,To=D(()=>{"use strict";Wg=(i=>(i[i.Global=1]="Global",i[i.Workspace=2]="Workspace",i[i.WorkspaceFolder=3]="WorkspaceFolder",i))(Wg||{})});function jle(n,e,t){return Mle.some(i=>n.startsWith(i))?1:e==="application"?1:e==="window"?2:e==="resource"||e==="machine-overridable"?3:e==="language-overridable"?4:t}function bv(n,e=2){let t={};for(let[i,r]of Object.entries($e(n))){let o=Fi(r);o.scope=jle(i,r.scope,e),t[i]=o}return t}var wk,di,Mle,ko=D(()=>{"use strict";To();Ti();Xe();Be();wk=class{constructor(){this.data=new Map}add(e,t){My(typeof e=="string"),My(St(t)),My(!this.data.has(e)),this.data.set(e,t)}knows(e){return this.data.has(e)}as(e){return this.data.get(e)||null}},di=new wk,Mle=["coc.source.","list.source."]});function Dk(){let n={};for(let e of Sk.getExtensions().extensions){let t=e.definitions;Object.entries($e(t)).forEach(([i,r])=>{n[i]=r})}return n}function Ole(n){return n&&typeof n.filetype=="string"&&!te(n.patterns)}function Ale(n){return n&&typeof n.command=="string"&&typeof n.title=="string"}function WY(n){let e={};if(Array.isArray(n))for(let t of n)Object.assign(e,$e(t.properties));else St(n.properties)&&(e=n.properties);return e}function Ll(n,e=2){let t=n.split(/\r?\n/).slice(e)[0];if(!t)return;t=t.replace(/^\s*at\s*/,"");let i;if(t.endsWith(")")){let o=t.match(/(\((.*?):\d+:\d+\))$/);o&&(i=o[2])}else{let o=t.match(/(.*?):\d+:\d+$/);o&&(i=o[1])}if(!i)return;let r=Sk.resolveExtension(i);if(r)return r.name;if(pt(Do,i))return"coc.nvim"}var ds,Ck,Sk,hs=D(()=>{"use strict";Se();Jt();at();ce();Xe();Be();ko();ds={ExtensionContribution:"base.contributions.extensions"},Ck=class{constructor(){this.extensionsById=new Map}resolveExtension(e){for(let t of this.extensionsById.values())if(t.filepath&&li(t.filepath,e)||!t.name.startsWith("single-")&&F.existsSync(t.directory)&&pt(F.realpathSync(t.directory),e,!1))return t}get onCommands(){let e=[];for(let t of this.extensionsById.values()){let{commands:i,onCommands:r}=t;for(let o of r)if(typeof o=="string"){let s=i.find(l=>l.command===o),a=s==null?"":s.title;e.push({id:o,title:a})}}return e}getCommandTitle(e){for(let t of this.extensionsById.values())for(let i of le(t.commands))if(i.command===e)return i.title}get commands(){let e=[];for(let t of this.extensionsById.values())e.push(...le(t.commands).filter(Ale));return e}getRootPatternsByFiletype(e){let t=[];for(let i of this.extensionsById.values())for(let r of le(i.rootPatterns).filter(Ole))r.filetype===e&&t.push(...r.patterns.filter(o=>typeof o=="string"));return t}unregistExtension(e){this.extensionsById.delete(e)}registerExtension(e,t){this.extensionsById.set(e,t)}getExtension(e){return this.extensionsById.get(e)}getExtensions(){return{extensions:this.extensionsById.values()}}},Sk=new Ck;di.add(ds.ExtensionContribution,Sk)});var Nle,Tk,Hle,kk,ie,kt=D(()=>{"use strict";Re();Ce();qg();Se();hs();$();ko();pe();Nle=J("commands"),Tk=class{constructor(e,t,i,r){this.id=e;this.impl=t;this.thisArg=i;this.internal=r}execute(...e){let{impl:t,thisArg:i}=this;return t.apply(i,le(e))}dispose(){this.thisArg=null,this.impl=null}},Hle=di.as(ds.ExtensionContribution),kk=class{constructor(){this.commands=new Map;this.titles=new Map;this.mru=new io("commands")}get commandList(){let e=[];for(let t of this.commands.values())if(!t.internal){let{id:i}=t,r=this.titles.get(i)??Hle.getCommandTitle(i);e.push({id:i,title:se(r)})}return e}dispose(){for(let e of this.commands.values())e.dispose();this.commands.clear()}execute(e){return this.executeCommand(e.command,...e.arguments??[])}register(e,t,i){for(let r of Array.isArray(e.id)?e.id:[e.id])this.registerCommand(r,e.execute,e,t),i&&this.titles.set(r,i);return e}has(e){return this.commands.has(e)}unregister(e){let t=this.commands.get(e);!t||(t.dispose(),this.commands.delete(e))}registerCommand(e,t,i,r=!1){return e.startsWith("_")&&(r=!0),this.commands.has(e)&&Nle.warn(`Command ${e} already registered`),this.commands.set(e,new Tk(e,t,i,r)),p.Disposable.create(()=>{this.commands.delete(e)})}executeCommand(e,...t){let i=this.commands.get(e);if(!i)throw new Error(`Command: ${e} not found`);return Promise.resolve(i.execute.apply(i,t))}async fireCommand(e,...t){await _.fire("Command",[e]);let i=Date.now(),r=await this.executeCommand(e,...t);return t.length==0&&await this.addRecent(e,_.lastChangeTs>i),r}async addRecent(e,t){await this.mru.add(e),t&&this.nvim.command('silent! call repeat#set("\\(coc-command-repeat)", -1)',!0)}async repeatCommand(){let t=(await this.mru.load())[0];t&&(await this.executeCommand(t),await this.nvim.command('silent! call repeat#set("\\(coc-command-repeat)", -1)'))}},ie=new kk});function on(n,e=0){return Xt(n)?n:e}function Pk(n){return n?1:0}function Rk(n,e,t){return Math.min(Math.max(n,e),t)}var aa=D(()=>{"use strict";Xe()});function YY(n){return n.replace(/'/g,"''")}var Yg,ZY=D(()=>{"use strict";Yg=class{constructor(e,t,i){this.name=e;this.nvim=t;this.onDispose=i;this.lines=[""];this._disposed=!1;this.created=!1}get content(){return this.lines.join(` +`)}_append(e){let{nvim:t}=this;if(!t)return;let i=this.lines.length-1,r=e.split(/\r?\n/),o=this.lines[i]+r[0];this.lines[i]=o;let s=r.slice(1);this.lines=this.lines.concat(s),this.created&&(t.pauseNotification(),t.call("setbufline",[this.bufname,"$",o],!0),s.length&&t.call("appendbufline",[this.bufname,"$",s],!0),t.resumeNotification(!1,!0))}append(e){!this.validate()||this._append(e)}appendLine(e){!this.validate()||this._append(e+` +`)}clear(e){let{nvim:t}=this;!this.validate()||!t||(this.lines=e?this.lines.slice(-e):[],this.created&&(t.pauseNotification(),t.call("deletebufline",[this.bufname,1,"$"],!0),this.lines.length&&t.call("appendbufline",[this.bufname,"$",this.lines],!0),t.resumeNotification(!0,!0)))}hide(){this.created=!1;let e=YY(this.bufname);this.nvim&&this.nvim.command(`exe 'silent! bwipeout! '.fnameescape('${e}')`,!0)}get bufname(){return`output:///${encodeURI(this.name)}`}show(e,t="vs"){let{nvim:i}=this;if(!i)return;let r=YY(this.bufname);i.pauseNotification(),i.command(`exe '${t} '.fnameescape('${r}')`,!0),e&&i.command("wincmd p",!0),i.resumeNotification(!0,!0),this.created=!0}validate(){return!this._disposed}dispose(){this.onDispose&&this.onDispose(),this._disposed=!0,this.hide(),this.lines=[]}}});var _k,la,Ek=D(()=>{"use strict";Re();ZY();_k=class{constructor(){this.outputChannels=new Map;this.bufnrs=new Map;this.disposable=_.on("BufUnload",e=>{let t=this.bufnrs.get(e);if(t){let i=this.outputChannels.get(t);i&&(i.created=!1)}})}getProvider(e){return{onDidChange:null,provideTextDocumentContent:async i=>{let r=this.get(i.path.slice(1));if(!r)return"";e.pauseNotification(),e.call("bufnr",["%"],!0),e.command("setlocal nospell nofoldenable nowrap noswapfile",!0),e.command("setlocal buftype=nofile bufhidden=hide",!0),e.command("setfiletype log",!0);let o=await e.resumeNotification();return this.bufnrs.set(o[0][0],r.name),r.created=!0,r.content}}}get names(){return Array.from(this.outputChannels.keys())}get(e){return this.outputChannels.get(e)}create(e,t){if(this.outputChannels.has(e))return this.outputChannels.get(e);let i=new Yg(e,t,()=>{this.outputChannels.delete(e)});return this.outputChannels.set(e,i),i}show(e,t,i){let r=this.outputChannels.get(e);!r||r.show(i,t)}dispose(){this.disposable.dispose();for(let e of this.outputChannels.values())e.dispose();this.outputChannels.clear()}},la=new _k});var yv,JY=D(()=>{"use strict";$();Re();ee();Se();yv=class{constructor(e,t){this.nvim=e;this.config=t;this.disposables=[];this._onDidClose=new p.Emitter;this.onDidClose=this._onDidClose.event;_.on("BufWinLeave",r=>{r==this.bufnr&&(this.dispose(),t.callback&&t.callback(-1))},null,this.disposables);let i=le(t.buttons).filter(r=>r.disabled!=!0);_.on("FloatBtnClick",(r,o)=>{r==this.bufnr&&(this.dispose(),t.callback&&t.callback(i[o].index))},null,this.disposables)}get lines(){return[...this.config.content.split(/\r?\n/)]}async show(e){let{nvim:t}=this,{title:i,close:r,highlights:o,buttons:s}=this.config,a=this.config.borderhighlight||e.floatBorderHighlight,l=this.config.highlight||e.floatHighlight,u={maxwidth:e.maxWidth||80};i&&(u.title=i),(r||typeof r>"u")&&(u.close=1),e.maxHeight&&(u.maxHeight=e.maxHeight),e.maxWidth&&(u.maxWidth=e.maxWidth),l&&(u.highlight=l),o&&(u.highlights=o),a&&(u.borderhighlight=[a]),s&&(u.buttons=s.filter(h=>!h.disabled).map(h=>h.text)),e.rounded&&(u.rounded=1),Array.isArray(u.buttons)&&(u.getchar=1);let[c,d]=await t.call("coc#dialog#create_dialog",[this.lines,u]);this.bufnr=d,t.command("redraw",!0)}get winid(){return this.bufnr?this.nvim.call("bufwinid",[this.bufnr]):Promise.resolve(null)}dispose(){this._onDidClose.fire(),this.bufnr=void 0,Y(this.disposables),this.disposables=[]}}});var ua,Ik=D(()=>{"use strict";$();Re();ee();Be();pe();ua=class{constructor(e,t){this.nvim=e;this.disposables=[];this.accepted=!1;this._disposed=!1;this._dimension=[0,0,0,0];this._onDidFinish=new p.Emitter;this._onDidChange=new p.Emitter;this.clear=!1;this.onDidFinish=this._onDidFinish.event;this.onDidChange=this._onDidChange.event;this._input=t,this.disposables.push(this._onDidFinish),this.disposables.push(this._onDidChange);let i;Object.defineProperty(this,"title",{set:s=>{i=s,this._winid&&e.call("coc#dialog#change_title",[this._winid,s],!0)},get:()=>i});let r=!1;Object.defineProperty(this,"loading",{set:s=>{r=s,this._winid&&e.call("coc#dialog#change_loading",[this._winid,s],!0)},get:()=>r});let o;Object.defineProperty(this,"borderhighlight",{set:s=>{o=s,this._winid&&e.call("coc#dialog#change_border_hl",[this._winid,s],!0)},get:()=>o}),Object.defineProperty(this,"value",{set:s=>{s=se(s),s!==this._input&&(this.clearVirtualText(),this._input=s,this.nvim.call("coc#dialog#change_input_value",[this.winid,this.bufnr,s],!0),this._onDidChange.fire(s))},get:()=>this._input}),_.on("BufWinLeave",s=>{s==this._bufnr&&(this._winid=void 0,this.dispose())},null,this.disposables),_.on("PromptInsert",(s,a)=>{a==this._bufnr&&(this._input=s,this.accepted=!0,this.dispose())},null,this.disposables),_.on("TextChangedI",(s,a)=>{s==this._bufnr&&this._input!==a.line&&(this.clearVirtualText(),this._input=a.line,this._onDidChange.fire(a.line))},null,this.disposables)}clearVirtualText(){this.clear&&this.bufnr&&(this.clear=!1,this.nvim.createBuffer(this.bufnr).clearNamespace("input-box"))}get dimension(){let{_dimension:e}=this;return{width:e[0],height:e[1],row:e[2],col:e[3]}}get bufnr(){return this._bufnr}get winid(){return this._winid}async show(e,t){this.title=e,this.borderhighlight=t.borderhighlight??"CocFloating",this.loading=!1,t.placeHolder&&!this._input&&!this.nvim.isVim&&(this.clear=!0);let i=q8(t),r=await this.nvim.call("coc#dialog#create_prompt_win",[e,this._input,i]);if(!r)throw new Error("Unable to open input window");return this._bufnr=r[0],this._winid=r[1],this._dimension=r[2],!0}dispose(){this._disposed||(this._disposed=!0,this.nvim.call("coc#float#close",[this._winid??-1],!0),this._onDidFinish.fire(this.accepted?this._input:null),this._winid=void 0,this._bufnr=void 0,Y(this.disposables))}}});var gs,vv=D(()=>{"use strict";Jt();gs=class{constructor(e,t,i,r,o=0){this.nvim=e;this.winid=t;this.bufnr=i;this.linecount=r;this._currIndex=o}get currIndex(){return this._currIndex}close(){this.nvim.call("coc#float#close",[this.winid],!0)}refreshScrollbar(){ai||this.nvim.call("coc#float#nvim_scrollbar",[this.winid],!0)}execute(e){this.nvim.call("coc#compat#execute",[this.winid,e],!0)}async getWininfo(){return await this.nvim.call("coc#float#get_wininfo",[this.winid])}async scrollForward(){let{nvim:e,bufnr:t}=this,r=await e.createBuffer(t).length,{botline:o}=await this.getWininfo();o>=r||o==0||(e.pauseNotification(),this.setCursor(o-1),this.execute("silent! noa setl scrolloff=0"),this.execute(`normal! ${o}Gzt`),this.refreshScrollbar(),e.command("redraw",!0),e.resumeNotification(!1,!0))}async scrollBackward(){let{nvim:e}=this,{topline:t}=await this.getWininfo();t!=1&&(e.pauseNotification(),this.setCursor(t-1),this.execute(`normal! ${t}Gzb`),this.refreshScrollbar(),e.command("redraw",!0),e.resumeNotification(!1,!0))}setCursor(e,t=!1){let{nvim:i,bufnr:r,winid:o,linecount:s}=this;e<0?e=0:e>s-1&&(e=s-1),this._currIndex=e,i.call("coc#dialog#set_cursor",[o,r,e+1],!0),t&&(this.refreshScrollbar(),i.command("redraw",!0))}}});function wv(n){return n?typeof n.text=="string":!1}function Ble(n){return n<99?`${n+1}. `:" "}var Zg,UY=D(()=>{"use strict";$();Re();ee();pe();vv();Zg=class{constructor(e,t,i){this.nvim=e;this.config=t;this.currIndex=0;this.contentHeight=0;this.disposables=[];this.keyMappings=new Map;this.shortcutIndexes=new Set;this._disposed=!1;this._onDidClose=new p.Emitter;this.onDidClose=this._onDidClose.event;this.total=t.items.length,i&&i.onCancellationRequested(()=>{this._onDidClose.fire(-1),this.dispose()}),this.disposables.push(this._onDidClose),this.addKeymappings()}attachEvents(){_.on("InputChar",this.onInputChar.bind(this),null,this.disposables),_.on("BufWinLeave",e=>{e==this.bufnr&&(this._onDidClose.fire(-1),this.dispose())},null,this.disposables)}addKeymappings(){let{nvim:e}=this;this.addKeys(["",""],()=>{this._onDidClose.fire(-1),this.dispose()}),this.addKeys(["\r",""],()=>{this.selectCurrent()});let t=s=>{e.pauseNotification(),this.setCursor(s+this.contentHeight),this.win.refreshScrollbar(),e.command("redraw",!0),e.resumeNotification(!1,!0)};this.addKeys("",async()=>{await this.win.scrollForward()}),this.addKeys("",async()=>{await this.win.scrollBackward()}),this.addKeys(["j","","",""],()=>{let s=this.currIndex==this.total-1?0:this.currIndex+1;t(s)}),this.addKeys(["k","","",""],()=>{let s=this.currIndex==0?this.total-1:this.currIndex-1;t(s)}),this.addKeys(["g"],()=>{t(0)}),this.addKeys(["G"],()=>{t(this.total-1)});let i,r,o=s=>{this.isDisabled(s)||(this._onDidClose.fire(s),this.dispose())};this.addKeys(["0","1","2","3","4","5","6","7","8","9"],s=>{i&&clearTimeout(i);let a=parseInt(s,10);if(!(isNaN(a)||a>this.total)&&!(r==null&&a==0)){if(r){let l=r*10+a;r=void 0,o(l-1);return}if(this.total<10||a*10>this.total){o(a-1);return}i=setTimeout(async()=>{o(a-1)},200),r=a}}),this.config.shortcuts&&this.addShortcuts(o)}addShortcuts(e){let{items:t}=this.config;t.map(r=>wv(r)?r.text:r).forEach((r,o)=>{if(r.length){let s=r[0];xc(s.charCodeAt(0))&&!this.keyMappings.has(s)&&(this.shortcutIndexes.add(o),this.addKeys(s,()=>{e(o)}))}})}isDisabled(e){let{items:t}=this.config,i=t[e];return!!(wv(i)&&i.disabled)}async show(e={}){let{nvim:t,shortcutIndexes:i}=this,{title:r,items:o,borderhighlight:s,position:a,content:l}=this.config,u={};r&&(u.title=r),a==="center"&&(u.relative="editor"),e.maxHeight&&(u.maxHeight=e.maxHeight),e.maxWidth&&(u.maxWidth=e.maxWidth),e.floatHighlight&&(u.highlight=e.floatHighlight),s?u.borderhighlight=s:e.floatBorderHighlight&&(u.borderhighlight=e.floatBorderHighlight),e.rounded&&(u.rounded=1),typeof l=="string"&&(u.content=l),e.confirmKey&&this.addKeys(e.confirmKey,()=>{this.selectCurrent()});let c=[],d=o.map((m,y)=>{let w=wv(m)?m.text:m,x=Ble(y);return i.has(y)&&c.push({lnum:y,hlGroup:e.shortcutHighlight||"MoreMsg",colStart:de(x),colEnd:de(x)+1}),x+w.trim()});d.forEach((m,y)=>{let w=o[y];wv(w)&&w.disabled&&c.push({hlGroup:"CocDisabled",lnum:y,colStart:0,colEnd:de(m)})}),c.length&&(u.highlights=c);let[h,g,f]=await t.call("coc#dialog#create_menu",[d,u]);t.command("redraw",!0),!this._disposed&&(this.win=new gs(t,h,g,d.length+f,f),this.bufnr=g,this.contentHeight=f,this.attachEvents(),t.call("coc#prompt#start_prompt",["menu"],!0))}selectCurrent(){if(this.isDisabled(this.currIndex)){let e=this.config.items[this.currIndex];e.disabled.reason&&this.nvim.outWriteLine(`Item disabled: ${e.disabled.reason}`);return}this._onDidClose.fire(this.currIndex),this.dispose()}get buffer(){return this.bufnr?this.nvim.createBuffer(this.bufnr):void 0}dispose(){var e;this._disposed||(this._disposed=!0,Y(this.disposables),this.shortcutIndexes.clear(),this.keyMappings.clear(),this.nvim.call("coc#prompt#stop_prompt",["menu"],!0),(e=this.win)==null||e.close(),this.bufnr=void 0,this.win=void 0)}async onInputChar(e,t){if(e!="menu"||!this.win)return;let i=this.keyMappings.get(t);i&&await Promise.resolve(i(t))}setCursor(e){this.currIndex=e-this.contentHeight,this.win.setCursor(e)}addKeys(e,t){if(Array.isArray(e))for(let i of e)this.keyMappings.set(i,t);else this.keyMappings.set(e,t)}}});function $Y(n){return n.map(e=>typeof e=="string"?{label:e}:e)}var Jg,XY=D(()=>{"use strict";Re();ee();$();pe();vv();Jg=class{constructor(e,t,i){this.nvim=e;this.config=t;this.picked=new Set;this.disposables=[];this.keyMappings=new Map;this._onDidClose=new p.Emitter;this.onDidClose=this._onDidClose.event;for(let r=0;r{var r;(r=this.win)==null||r.close()}),this.disposables.push(this._onDidClose)}get currIndex(){return this.win?this.win.currIndex:0}attachEvents(){_.on("InputChar",this.onInputChar.bind(this),null,this.disposables),_.on("BufWinLeave",e=>{e==this.bufnr&&(this._onDidClose.fire(void 0),this.bufnr=void 0,this.win=void 0,this.dispose())},null,this.disposables),_.on("FloatBtnClick",(e,t)=>{if(e==this.bufnr){if(t==0){let i=Array.from(this.picked);this._onDidClose.fire(i.length>0?i:void 0)}else this._onDidClose.fire(void 0);this.dispose()}},null,this.disposables),this.addKeymappings()}addKeymappings(){let{nvim:e}=this,t=i=>{this.picked.has(i)?this.picked.delete(i):this.picked.add(i)};this.addKeys("",async()=>{let[i,r,o]=await e.call("coc#ui#get_mouse");e.pauseNotification(),i==this.win.winid&&(o<=3?(t(r-1),this.changeLine(r-1)):this.win.setCursor(r-1)),e.call("win_gotoid",[i],!0),e.call("cursor",[r,o],!0),e.call("coc#float#nvim_float_click",[],!0),e.command("redraw",!0),await e.resumeNotification()}),this.addKeys(["",""],()=>{this._onDidClose.fire(void 0),this.dispose()}),this.addKeys("",()=>{if(this.picked.size==0)this._onDidClose.fire(void 0);else{let i=Array.from(this.picked);this._onDidClose.fire(i)}this.dispose()}),this.addKeys(["j","","",""],()=>{this.win.setCursor(this.currIndex+1,!0)}),this.addKeys(["k","","",""],()=>{this.win.setCursor(this.currIndex-1,!0)}),this.addKeys(["g"],()=>{this.win.setCursor(0,!0)}),this.addKeys(["G"],()=>{this.win.setCursor(this.total-1,!0)}),this.addKeys(" ",async()=>{let i=this.currIndex;t(i),e.pauseNotification(),this.changeLine(i),this.win.setCursor(this.currIndex+1),e.command("redraw",!0),await e.resumeNotification()}),this.addKeys("",async()=>{await this.win.scrollForward()}),this.addKeys("",async()=>{await this.win.scrollBackward()})}async show(e={}){let{nvim:t}=this,{title:i,items:r}=this.config,o={close:1,cursorline:1};if(e.maxHeight&&(o.maxHeight=e.maxHeight),e.maxWidth&&(o.maxWidth=e.maxWidth),i&&(o.title=i),e.floatHighlight&&(o.highlight=e.floatHighlight),e.floatBorderHighlight&&(o.borderhighlight=[e.floatBorderHighlight]),e.pickerButtons){let u=e.pickerButtonShortcut;o.buttons=["Submit"+(u?" ":""),"Cancel"+(u?" ":"")]}e.rounded&&(o.rounded=1),e.confirmKey&&e.confirmKey!=""&&this.addKeys(e.confirmKey,()=>{this._onDidClose.fire(void 0),this.dispose()});let s=[],a=[];for(let u=0;u=3){let u=Math.min(7,n.length-1);for(let c=t+1;cl[0])&&(l=h))}}}return l}function Ml(n,e,t,i,r,o,s={boostFullMatch:!0,firstMatchCanBeWeak:!1}){let a=n.length>ca?ca:n.length,l=i.length>ca?ca:i.length;if(t>=a||o>=l||a-t>l-o||!Yle(e,t,a,r,o,l,!0))return;Zle(a,l,t,o,e,r);let u=1,c=1,d=t,h=o,g=[!1];for(u=1,d=t;dx,K=q?Fl[u][c-1]+(ps[u][c-1]>0?-5:0):0,X=h>x+1&&ps[u][c-1]>0,z=X?Fl[u][c-2]+(ps[u][c-2]>0?-5:0):0;X&&(!q||z>=K)&&(!O||z>=j)?(Fl[u][c]=z,xv[u][c]=3,ps[u][c]=0):q&&(!O||K>=j)?(Fl[u][c]=K,xv[u][c]=2,ps[u][c]=0):(Fl[u][c]=j,xv[u][c]=1,ps[u][c]=ps[u-1][c-1]+1)}}if(!g[0]&&!s.firstMatchCanBeWeak)return;u--,c--;let f=[Fl[u][c],o],m=0,y=0;for(;u>=1;){let x=c;do{let C=xv[u][x];if(C===3)x=x-2;else if(C===2)x=x-1;else break}while(x>=1);m>1&&e[t+u-1]===r[o+c-1]&&!Sv(x+o-1,i,r)&&m+1>ps[u][x]&&(x=c),x===c?m++:m=1,y||(y=x),u--,c=x-1,f.push(c)}l===a&&s.boostFullMatch&&(f[0]+=2);let w=y-a;return f[0]-=w,f}function ha(n,e,t,i,r,o,s){let a=Math.min(13,n.length);for(;t1&&t===i&&(c[0]=!0),h||(h=Sv(s,r,o)||Cv(o,s-1)||GY(o,s-1)),t===i?s>l&&(d-=h?3:5):u?d+=h?2:0:d+=h?0:1,s+1===a&&(d-=h?3:5),d}function Cv(n,e){let t=n.codePointAt(e);switch(t){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!pY(t)}}function GY(n,e){if(e<0||e>=n.length)return!1;switch(n.charCodeAt(e)){case 32:case 9:return!0;default:return!1}}function Yle(n,e,t,i,r,o,s=!1){for(;e=t&&a>=i;)r[s]===o[a]&&(Lk[s]=a,s--),a--}function Jle(n,e){if(e+1>=n.length)return;let t=n[e],i=n[e+1];if(t!==i)return n.slice(0,e)+i+t+n.slice(e+2)}var ca,KY,Lk,ps,Fl,xv,Pc=D(()=>{"use strict";Rg();pe();ca=128;KY=zY(2*ca),Lk=zY(2*ca),ps=Fk(),Fl=Fk(),xv=Fk()});async function QY(){let n=await(0,st.promisify)(F.readFile)(Ule);return(await global.WebAssembly.instantiate(n,{env:{}})).instance.exports}function Tv(n,e){let t=[];for(let i of kv(n,e,2))t.push(i);return t}function*kv(n,e,t=0,i=Number.MAX_SAFE_INTEGER){let r=e.length;if(r<=t)return;let o=ra(n,Math.min(e[t]+1,i)),s,a;for(let l=r-1;l>=t;l--){let u=e[l];if(u>=i){s!=null&&(yield[o(s),o(a+1)]);break}if(a!=null){let c=u-a;if(c==1)a=u;else if(c>1)yield[o(s),o(a+1)],s=u;else{yield[o(s),o(a+1)];break}}else s=u;a=u,l==t&&(yield[o(s),o(a+1)])}}function*$le(n,e,t){t=t?Math.min(t,n.length):n.length;let i=ra(n,Math.min(n.length,4096)),r,o,s=e.length;for(let a=0;a=t){r!=null&&(yield[i(r),i(o+1)]);break}if(o!=null){let u=l-o;if(u==1)o=l;else if(u>1)yield[i(r),i(o+1)],r=l;else{yield[i(r),i(o+1)];break}}else r=l;o=l,a==s-1&&(yield[i(r),i(o+1)])}}var Ule,Dv,Ug=D(()=>{"use strict";Jt();Pc();ce();pe();Ule=R.join(Do,"bin/fuzzy.wasm");Dv=class{constructor(e){this.exports=e;this.patternLength=0;this.matchSeq=!1;this.sizes=[2048,1024,1024]}matchSpans(e,t,i){return $le(e,t,i)}matchScoreSpans(e,t){return kv(e,t,2)}createScoreFunction(e,t,i,r){let o=e.toLowerCase(),s;return r==="any"?s=ha:r==="aggressive"?s=da:s=Ml,(a,l=0)=>s(e,o,t,a,a.toLowerCase(),l,i)}getSizes(){return this.sizes}setPattern(e,t=!1){if(e.length>256&&(e=e.slice(0,256)),this.matchSeq=t,this.patternLength=t?e.length:e.replace(/(\s|\t)/g,"").length,this.patternPtr==null){let{malloc:s}=this.exports,{sizes:a}=this;this.contentPtr=s(a[0]),this.patternPtr=s(a[1]),this.resultPtr=s(a[2])}let i=Buffer.from(e,"utf8"),r=i.length,o=new Uint8Array(this.exports.memory.buffer,this.patternPtr,r+1);o.set(i),o[r]=0}changeContent(e){let{sizes:t}=this;e.length>4096&&(e=e.slice(0,4096));let i=Buffer.from(e,"utf8"),r=i.length;if(r>t[0]){let{malloc:s,free:a}=this.exports;a(this.contentPtr);let l=r+1;this.contentPtr=s(l),t[0]=l}let o=new Uint8Array(this.exports.memory.buffer,this.contentPtr,r+1);o.set(i),o[r]=0}match(e){if(this.patternPtr==null)throw new Error("setPattern not called before match");if(this.patternLength===0)return{score:100,positions:new Uint32Array};this.changeContent(e);let{fuzzyMatch:t,memory:i}=this.exports,{resultPtr:r}=this,o=t(this.contentPtr,this.patternPtr,r,this.matchSeq?1:0);if(!o)return;let s=new Uint32Array(i.buffer,r,this.patternLength);return{score:o,positions:s.slice()}}matchHighlights(e,t){let i=this.match(e);if(!i)return;let r=[];for(let o of this.matchSpans(e,i.positions))r.push({span:o,hlGroup:t});return{score:i.score,highlights:r}}free(){let e=[this.contentPtr,this.patternPtr,this.resultPtr],{free:t}=this.exports;e.forEach(i=>{i!=null&&t(i)}),this.contentPtr=this.patternPtr=this.resultPtr=void 0}}});async function Gle(){let n=await(0,st.promisify)(F.readFile)(Xle);return(await global.WebAssembly.instantiate(n,{env:{}})).instance.exports}var Xle,Pv,ga,Mk=D(()=>{"use strict";Jt();ce();Xle=R.join(Do,"bin/strwidth.wasm");ga=class{constructor(e){this.exports=e;this.cache=new Map;this.bytes=new Uint8Array(e.memory.buffer),this.contentPtr=e.malloc(4096)}setAmbw(e){this.exports.setAmbw(e?1:0),this.cache.clear()}getWidth(e,t=!1){let i=e.length;if(i===0)return 0;if(i>4095&&(e=e.slice(0,4095)),t&&this.cache.has(e))return this.cache.get(e);let{contentPtr:r}=this,o=Buffer.from(e,"utf8"),s=o.length;this.bytes.set(o,r),this.bytes[r+s]=0;let a=this.exports.strWidth(r);return t&&this.cache.set(e,a),a}static async create(){if(Pv)return Pv;let e=await Gle();return Pv=new ga(e),Pv}}});var OPe,Rc,VY=D(()=>{"use strict";Re();Ce();ee();Se();Pc();$();pe();Ug();Ik();vv();Mk();OPe=J("quickpick"),Rc=class{constructor(e,t={}){this.nvim=e;this.preferences=t;this.canSelectMany=!1;this.matchOnDescription=!1;this.maxHeight=30;this.filteredItems=[];this.disposables=[];this._changed=!1;this._onDidFinish=new p.Emitter;this._onDidChangeSelection=new p.Emitter;this._onDidChangeValue=new p.Emitter;this.onDidFinish=this._onDidFinish.event;this.onDidChangeSelection=this._onDidChangeSelection.event;this.onDidChangeValue=this._onDidChangeValue.event;let i=[],r=this.input=new ua(this.nvim,"");t.maxHeight&&(this.maxHeight=t.maxHeight),Object.defineProperty(this,"items",{set:o=>{i=le(o),this.selectedItems=i.filter(s=>s.picked),this.filterItems("")},get:()=>i}),Object.defineProperty(this,"activeItems",{set:o=>{i=le(o),this.filteredItems=i,this.showFilteredItems()},get:()=>this.filteredItems}),Object.defineProperty(this,"value",{set:o=>{this.input.value=o},get:()=>this.input.value}),Object.defineProperty(this,"title",{set:o=>{r.title=se(o)},get:()=>r.title??""}),Object.defineProperty(this,"loading",{set:o=>{r.loading=o},get:()=>r.loading}),r.onDidChange(o=>{if(this._changed=!1,this._onDidChangeValue.fire(o),this._changed){this._changed=!1;return}this.filterItems(o)},this),r.onDidFinish(this.onFinish,this)}get maxWidth(){return this.preferences.maxWidth??80}get currIndex(){return this.win?this.win.currIndex:0}get buffer(){return this.bufnr?this.nvim.createBuffer(this.bufnr):void 0}get winid(){var e;return(e=this.win)==null?void 0:e.winid}setCursor(e){var t;(t=this.win)==null||t.setCursor(e,!0)}attachEvents(e){_.on("BufWinLeave",t=>{t==this.bufnr&&(this.bufnr=void 0,this.win=void 0)},null,this.disposables),_.on("PromptKeyPress",async(t,i)=>{t==e&&(i==""?await this.win.scrollForward():i==""?await this.win.scrollBackward():["","",""].includes(i)?this.setCursor(this.currIndex+1):["","",""].includes(i)?this.setCursor(this.currIndex-1):this.canSelectMany&&i==""&&this.toggePicked(this.currIndex))},null,this.disposables)}async show(){let{nvim:e,items:t,input:i,width:r,preferences:o,maxHeight:s}=this,{lines:a,highlights:l}=this.buildList(t,i.value),u,c=0,d=await ga.create();typeof r=="number"&&(u=Math.min(r,this.maxWidth));let h=40;a.forEach(y=>{let w=d.getWidth(y);typeof u=="number"?c+=Math.ceil(w/u):w>=80?(u=80,c+=Math.ceil(w/u)):(h=Math.max(h,w),c+=1)}),u===void 0&&(u=h);let g=!!o.rounded;await i.show(this.title,{position:"center",placeHolder:this.placeholder,marginTop:10,border:[1,1,0,1],list:!0,rounded:g,minWidth:u,maxWidth:this.maxWidth,highlight:o.floatHighlight,borderhighlight:o.floatBorderHighlight});let f={lines:a,rounded:g,maxHeight:s,highlights:l,linecount:Math.max(1,c)};f.highlight=ye(o.floatHighlight,void 0),f.borderhighlight=ye(o.floatBorderHighlight,void 0);let m=await e.call("coc#dialog#create_list",[i.winid,i.dimension,f]);if(!m)throw new Error("Unable to open list window.");this.win=new gs(e,m[0],m[1],a.length),this.win.refreshScrollbar(),this.bufnr=m[1],this.setCursor(0),this.attachEvents(i.bufnr)}buildList(e,t,i=!1){let{selectedItems:r,canSelectMany:o}=this,s=[],a=[],l=t.length===0,u=t.toLowerCase(),c=i?ha:da,d=o?4:0;for(let m=0;mm.score!=y.score?y.score-m.score:m.index-y.index);let f=(m,y,w,x)=>({lnum:m,colStart:y[0]+x,colEnd:y[1]+x,hlGroup:w});return a.forEach((m,y)=>{h.push(m.line),m.spans.forEach(w=>{g.push(f(y,w,"CocSearch",d))}),m.descriptionSpan&&g.push(f(y,m.descriptionSpan,"Comment",0)),s.push(e[m.index])}),this.filteredItems=s,{lines:h,highlights:g}}_filter(e,t,i=!1){if(!this.win)return;this._changed=!0;let{lines:r,highlights:o}=this.buildList(e,t,i);this.nvim.call("coc#dialog#update_list",[this.win.winid,this.win.bufnr,r,o],!0),this.win.linecount=r.length,this.setCursor(0)}filterItems(e){this._filter(this.items,e)}showFilteredItems(){let{input:e,filteredItems:t}=this;this._filter(t,e.value,!0)}onFinish(e){let t=e==null?null:this.getSelectedItems();!this.canSelectMany&&e!==void 0&&!te(t)&&this._onDidChangeSelection.fire(t),this.nvim.call("coc#float#close",[this.winid],!0),setTimeout(()=>{this._onDidFinish.fire(t),this.dispose()},30)}getSelectedItems(){let{canSelectMany:e}=this;return e?this.selectedItems:le(this.filteredItems[this.currIndex])}toggePicked(e){let{nvim:t,filteredItems:i,selectedItems:r}=this,o=i[e];if(!o)return;let s=r.indexOf(o);s!=-1?r.splice(s,1):r.push(o);let a=s==-1?"x":" ";t.pauseNotification(),this.win.execute(`normal! ^1lr${a}`),this.win.setCursor(this.win.currIndex+1),t.resumeNotification(!0,!0),this._onDidChangeSelection.fire(r)}toFilterText(e){let{label:t,description:i}=e,{canSelectMany:r}=this,o=`${r?" ":""}${t.replace(/\r?\n/,"")}`;return this.matchOnDescription?o+" "+(i??""):o}dispose(){var e;this.bufnr=void 0,this.input.dispose(),(e=this.win)==null||e.close(),this._onDidFinish.dispose(),this._onDidChangeSelection.dispose(),Y(this.disposables)}}});var Oi,fs=D(()=>{"use strict";Oi=class{constructor(){this.tasks=[];this.count=1}sched(){this.count>0&&this.tasks.length>0&&(this.count--,this.tasks.shift()())}reset(){this.tasks=[],this.count=1}get busy(){return this.count==0}acquire(){return new Promise(e=>{let t=()=>{let i=!1;e(()=>{i||(i=!0,this.count++,this.sched())})};this.tasks.push(t),process.nextTick(this.sched.bind(this))})}use(e){return this.acquire().then(t=>e().then(i=>(t(),i)).catch(i=>{throw t(),i}))}}});var ms=v((HPe,e4)=>{"use strict";var Rv=require("buffer"),_c=Rv.Buffer,Cr={},Sr;for(Sr in Rv)!Rv.hasOwnProperty(Sr)||Sr==="SlowBuffer"||Sr==="Buffer"||(Cr[Sr]=Rv[Sr]);var Ec=Cr.Buffer={};for(Sr in _c)!_c.hasOwnProperty(Sr)||Sr==="allocUnsafe"||Sr==="allocUnsafeSlow"||(Ec[Sr]=_c[Sr]);Cr.Buffer.prototype=_c.prototype;(!Ec.from||Ec.from===Uint8Array.from)&&(Ec.from=function(n,e,t){if(typeof n=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof n);if(n&&typeof n.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof n);return _c(n,e,t)});Ec.alloc||(Ec.alloc=function(n,e,t){if(typeof n!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof n);if(n<0||n>=2*(1<<30))throw new RangeError('The value "'+n+'" is invalid for option "size"');var i=_c(n);return!e||e.length===0?i.fill(0):typeof t=="string"?i.fill(e,t):i.fill(e),i});if(!Cr.kStringMaxLength)try{Cr.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}Cr.constants||(Cr.constants={MAX_LENGTH:Cr.kMaxLength},Cr.kStringMaxLength&&(Cr.constants.MAX_STRING_LENGTH=Cr.kStringMaxLength));e4.exports=Cr});var i4=v(Ak=>{"use strict";var t4="\uFEFF";Ak.PrependBOM=jk;function jk(n,e){this.encoder=n,this.addBOM=!0}jk.prototype.write=function(n){return this.addBOM&&(n=t4+n,this.addBOM=!1),this.encoder.write(n)};jk.prototype.end=function(){return this.encoder.end()};Ak.StripBOM=Ok;function Ok(n,e){this.decoder=n,this.pass=!1,this.options=e||{}}Ok.prototype.write=function(n){var e=this.decoder.write(n);return this.pass||!e||(e[0]===t4&&(e=e.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),e};Ok.prototype.end=function(){return this.decoder.end()}});var r4=v((qPe,n4)=>{"use strict";var jl=ms().Buffer;n4.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:Hk};function Hk(n,e){this.enc=n.encodingName,this.bomAware=n.bomAware,this.enc==="base64"?this.encoder=Wk:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=Yk,jl.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=Zk,this.defaultCharUnicode=e.defaultCharUnicode))}Hk.prototype.encoder=qk;Hk.prototype.decoder=Bk;var Nk=require("string_decoder").StringDecoder;Nk.prototype.end||(Nk.prototype.end=function(){});function Bk(n,e){this.decoder=new Nk(e.enc)}Bk.prototype.write=function(n){return jl.isBuffer(n)||(n=jl.from(n)),this.decoder.write(n)};Bk.prototype.end=function(){return this.decoder.end()};function qk(n,e){this.enc=e.enc}qk.prototype.write=function(n){return jl.from(n,this.enc)};qk.prototype.end=function(){};function Wk(n,e){this.prevStr=""}Wk.prototype.write=function(n){n=this.prevStr+n;var e=n.length-n.length%4;return this.prevStr=n.slice(e),n=n.slice(0,e),jl.from(n,"base64")};Wk.prototype.end=function(){return jl.from(this.prevStr,"base64")};function Yk(n,e){}Yk.prototype.write=function(n){for(var e=jl.alloc(n.length*3),t=0,i=0;i>>6),e[t++]=128+(r&63)):(e[t++]=224+(r>>>12),e[t++]=128+(r>>>6&63),e[t++]=128+(r&63))}return e.slice(0,t)};Yk.prototype.end=function(){};function Zk(n,e){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=e.defaultCharUnicode}Zk.prototype.write=function(n){for(var e=this.acc,t=this.contBytes,i=this.accBytes,r="",o=0;o0&&(r+=this.defaultCharUnicode,t=0),s<128?r+=String.fromCharCode(s):s<224?(e=s&31,t=1,i=1):s<240?(e=s&15,t=2,i=1):r+=this.defaultCharUnicode):t>0?(e=e<<6|s&63,t--,i++,t===0&&(i===2&&e<128&&e>0?r+=this.defaultCharUnicode:i===3&&e<2048?r+=this.defaultCharUnicode:r+=String.fromCharCode(e))):r+=this.defaultCharUnicode}return this.acc=e,this.contBytes=t,this.accBytes=i,r};Zk.prototype.end=function(){var n=0;return this.contBytes>0&&(n+=this.defaultCharUnicode),n}});var a4=v(pa=>{"use strict";var _v=ms().Buffer;pa._utf32=Jk;function Jk(n,e){this.iconv=e,this.bomAware=!0,this.isLE=n.isLE}pa.utf32le={type:"_utf32",isLE:!0};pa.utf32be={type:"_utf32",isLE:!1};pa.ucs4le="utf32le";pa.ucs4be="utf32be";Jk.prototype.encoder=Uk;Jk.prototype.decoder=$k;function Uk(n,e){this.isLE=e.isLE,this.highSurrogate=0}Uk.prototype.write=function(n){for(var e=_v.from(n,"ucs2"),t=_v.alloc(e.length*2),i=this.isLE?t.writeUInt32LE:t.writeUInt32BE,r=0,o=0;o0){for(;e1114111)&&(t=i),t>=65536){t-=65536;var r=55296|t>>10;n[e++]=r&255,n[e++]=r>>8;var t=56320|t&1023}return n[e++]=t&255,n[e++]=t>>8,e}$k.prototype.end=function(){this.overflow.length=0};pa.utf32=Xk;pa.ucs4="utf32";function Xk(n,e){this.iconv=e}Xk.prototype.encoder=Gk;Xk.prototype.decoder=zk;function Gk(n,e){n=n||{},n.addBOM===void 0&&(n.addBOM=!0),this.encoder=e.iconv.getEncoder(n.defaultEncoding||"utf-32le",n)}Gk.prototype.write=function(n){return this.encoder.write(n)};Gk.prototype.end=function(){return this.encoder.end()};function zk(n,e){this.decoder=null,this.initialBufs=[],this.initialBufsLen=0,this.options=n||{},this.iconv=e.iconv}zk.prototype.write=function(n){if(!this.decoder){if(this.initialBufs.push(n),this.initialBufsLen+=n.length,this.initialBufsLen<32)return"";var e=s4(this.initialBufs,this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(e,this.options);for(var t="",i=0;i16)&&o++,(t[3]!==0||t[2]>16)&&r++,t[0]===0&&t[1]===0&&(t[2]!==0||t[3]!==0)&&a++,(t[0]!==0||t[1]!==0)&&t[2]===0&&t[3]===0&&s++,t.length=0,i++,i>=100)break e}return a-o>s-r?"utf-32be":a-o{"use strict";var l4=ms().Buffer;iP.utf16be=Ev;function Ev(){}Ev.prototype.encoder=Kk;Ev.prototype.decoder=Qk;Ev.prototype.bomAware=!0;function Kk(){}Kk.prototype.write=function(n){for(var e=l4.from(n,"ucs2"),t=0;t=100)break e}return o>r?"utf-16be":o{"use strict";var Po=ms().Buffer;Fv.utf7=Iv;Fv.unicode11utf7="utf7";function Iv(n,e){this.iconv=e}Iv.prototype.encoder=rP;Iv.prototype.decoder=oP;Iv.prototype.bomAware=!0;var zle=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function rP(n,e){this.iconv=e.iconv}rP.prototype.write=function(n){return Po.from(n.replace(zle,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};rP.prototype.end=function(){};function oP(n,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var Kle=/[A-Za-z0-9\/+]/,sP=[];for($g=0;$g<256;$g++)sP[$g]=Kle.test(String.fromCharCode($g));var $g,Qle="+".charCodeAt(0),Ol="-".charCodeAt(0),nP="&".charCodeAt(0);oP.prototype.write=function(n){for(var e="",t=0,i=this.inBase64,r=this.base64Accum,o=0;o0&&(n=this.iconv.decode(Po.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",n};Fv.utf7imap=Lv;function Lv(n,e){this.iconv=e}Lv.prototype.encoder=aP;Lv.prototype.decoder=lP;Lv.prototype.bomAware=!0;function aP(n,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=Po.alloc(6),this.base64AccumIdx=0}aP.prototype.write=function(n){for(var e=this.inBase64,t=this.base64Accum,i=this.base64AccumIdx,r=Po.alloc(n.length*5+10),o=0,s=0;s0&&(o+=r.write(t.slice(0,i).toString("base64").replace(/\//g,",").replace(/=+$/,""),o),i=0),r[o++]=Ol,e=!1),e||(r[o++]=a,a===nP&&(r[o++]=Ol))):(e||(r[o++]=nP,e=!0),e&&(t[i++]=a>>8,t[i++]=a&255,i==t.length&&(o+=r.write(t.toString("base64").replace(/\//g,","),o),i=0)))}return this.inBase64=e,this.base64AccumIdx=i,r.slice(0,o)};aP.prototype.end=function(){var n=Po.alloc(10),e=0;return this.inBase64&&(this.base64AccumIdx>0&&(e+=n.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),e),this.base64AccumIdx=0),n[e++]=Ol,this.inBase64=!1),n.slice(0,e)};function lP(n,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var d4=sP.slice();d4[",".charCodeAt(0)]=!0;lP.prototype.write=function(n){for(var e="",t=0,i=this.inBase64,r=this.base64Accum,o=0;o0&&(n=this.iconv.decode(Po.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",n}});var p4=v(g4=>{"use strict";var Mv=ms().Buffer;g4._sbcs=uP;function uP(n,e){if(!n)throw new Error("SBCS codec is called without the data.");if(!n.chars||n.chars.length!==128&&n.chars.length!==256)throw new Error("Encoding '"+n.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(n.chars.length===128){for(var t="",i=0;i<128;i++)t+=String.fromCharCode(i);n.chars=t+n.chars}this.decodeBuf=Mv.from(n.chars,"ucs2");for(var r=Mv.alloc(65536,e.defaultCharSingleByte.charCodeAt(0)),i=0;i{"use strict";f4.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},cp720:{type:"_sbcs",chars:"\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var y4=v(($Pe,b4)=>{"use strict";b4.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b +\v\f\r\x1B !"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD`},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"},maccyrillic:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},macgreek:{type:"_sbcs",chars:"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"},maciceland:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macroman:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macromania:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macthai:{type:"_sbcs",chars:"\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"},macturkish:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macukraine:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},koi8r:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8u:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8ru:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8t:{type:"_sbcs",chars:"\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},armscii8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"},rk1048:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},tcvn:{type:"_sbcs",chars:`\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b +\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0`},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},viscii:{type:"_sbcs",chars:`\0\u1EB2\u1EB4\u1EAA\x07\b +\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE`},iso646cn:{type:"_sbcs",chars:`\0\x07\b +\v\f\r\x1B !"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},iso646jp:{type:"_sbcs",chars:`\0\x07\b +\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var x4=v(w4=>{"use strict";var hP=ms().Buffer;w4._dbcs=bs;var Gi=-1,v4=-2,Dr=-10,xn=-1e3,Ic=new Array(256),Xg=-1;for(jv=0;jv<256;jv++)Ic[jv]=Gi;var jv;function bs(n,e){if(this.encodingName=n.encodingName,!n)throw new Error("DBCS codec is called without the data.");if(!n.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var t=n.table();this.decodeTables=[],this.decodeTables[0]=Ic.slice(0),this.decodeTableSeq=[];for(var i=0;ixn)throw new Error("gb18030 decode tables conflict at byte 2");for(var u=this.decodeTables[xn-a[l]],c=129;c<=254;c++){if(u[c]===Gi)u[c]=xn-o;else{if(u[c]===xn-o)continue;if(u[c]>xn)throw new Error("gb18030 decode tables conflict at byte 3")}for(var d=this.decodeTables[xn-u[c]],h=48;h<=57;h++)d[h]===Gi&&(d[h]=v4)}}}this.defaultCharUnicode=e.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var g={};if(n.encodeSkipVals)for(var i=0;i0;n>>>=8)e.push(n&255);e.length==0&&e.push(0);for(var t=this.decodeTables[0],i=e.length-1;i>0;i--){var r=t[e[i]];if(r==Gi)t[e[i]]=xn-this.decodeTables.length,this.decodeTables.push(t=Ic.slice(0));else if(r<=xn)t=this.decodeTables[xn-r];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+n.toString(16))}return t};bs.prototype._addDecodeChunk=function(n){var e=parseInt(n[0],16),t=this._getDecodeTrieNode(e);e=e&255;for(var i=1;i255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+n[0]+": too long"+e)};bs.prototype._getEncodeBucket=function(n){var e=n>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=Ic.slice(0)),this.encodeTable[e]};bs.prototype._setEncodeChar=function(n,e){var t=this._getEncodeBucket(n),i=n&255;t[i]<=Dr?this.encodeTableSeq[Dr-t[i]][Xg]=e:t[i]==Gi&&(t[i]=e)};bs.prototype._setEncodeSequence=function(n,e){var t=n[0],i=this._getEncodeBucket(t),r=t&255,o;i[r]<=Dr?o=this.encodeTableSeq[Dr-i[r]]:(o={},i[r]!==Gi&&(o[Xg]=i[r]),i[r]=Dr-this.encodeTableSeq.length,this.encodeTableSeq.push(o));for(var s=1;s=0)this._setEncodeChar(a,l),r=!0;else if(a<=xn){var u=xn-a;if(!o[u]){var c=l<<8>>>0;this._fillEncodeTable(u,c,t)?r=!0:o[u]=!0}}else a<=Dr&&(this._setEncodeSequence(this.decodeTableSeq[Dr-a],l),r=!0)}return r};function Ov(n,e){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=e.encodeTable,this.encodeTableSeq=e.encodeTableSeq,this.defaultCharSingleByte=e.defCharSB,this.gb18030=e.gb18030}Ov.prototype.write=function(n){for(var e=hP.alloc(n.length*(this.gb18030?4:3)),t=this.leadSurrogate,i=this.seqObj,r=-1,o=0,s=0;;){if(r===-1){if(o==n.length)break;var a=n.charCodeAt(o++)}else{var a=r;r=-1}if(55296<=a&&a<57344)if(a<56320)if(t===-1){t=a;continue}else t=a,a=Gi;else t!==-1?(a=65536+(t-55296)*1024+(a-56320),t=-1):a=Gi;else t!==-1&&(r=a,a=Gi,t=-1);var l=Gi;if(i!==void 0&&a!=Gi){var u=i[a];if(typeof u=="object"){i=u;continue}else typeof u=="number"?l=u:u==null&&(u=i[Xg],u!==void 0&&(l=u,r=a));i=void 0}else if(a>=0){var c=this.encodeTable[a>>8];if(c!==void 0&&(l=c[a&255]),l<=Dr){i=this.encodeTableSeq[Dr-l];continue}if(l==Gi&&this.gb18030){var d=pP(this.gb18030.uChars,a);if(d!=-1){var l=this.gb18030.gbChars[d]+(a-this.gb18030.uChars[d]);e[s++]=129+Math.floor(l/12600),l=l%12600,e[s++]=48+Math.floor(l/1260),l=l%1260,e[s++]=129+Math.floor(l/10),l=l%10,e[s++]=48+l;continue}}}l===Gi&&(l=this.defaultCharSingleByte),l<256?e[s++]=l:l<65536?(e[s++]=l>>8,e[s++]=l&255):l<16777216?(e[s++]=l>>16,e[s++]=l>>8&255,e[s++]=l&255):(e[s++]=l>>>24,e[s++]=l>>>16&255,e[s++]=l>>>8&255,e[s++]=l&255)}return this.seqObj=i,this.leadSurrogate=t,e.slice(0,s)};Ov.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var n=hP.alloc(10),e=0;if(this.seqObj){var t=this.seqObj[Xg];t!==void 0&&(t<256?n[e++]=t:(n[e++]=t>>8,n[e++]=t&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(n[e++]=this.defaultCharSingleByte,this.leadSurrogate=-1),n.slice(0,e)}};Ov.prototype.findIdx=pP;function gP(n,e){this.nodeIdx=0,this.prevBytes=[],this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}gP.prototype.write=function(n){for(var e=hP.alloc(n.length*2),t=this.nodeIdx,i=this.prevBytes,r=this.prevBytes.length,o=-this.prevBytes.length,s,a=0,l=0;a=0?n[a]:i[a+r],s=this.decodeTables[t][u];if(!(s>=0))if(s===Gi)s=this.defaultCharUnicode.charCodeAt(0),a=o;else if(s===v4){if(a>=3)var c=(n[a-3]-129)*12600+(n[a-2]-48)*1260+(n[a-1]-129)*10+(u-48);else var c=(i[a-3+r]-129)*12600+((a-2>=0?n[a-2]:i[a-2+r])-48)*1260+((a-1>=0?n[a-1]:i[a-1+r])-129)*10+(u-48);var d=pP(this.gb18030.gbChars,c);s=this.gb18030.uChars[d]+c-this.gb18030.gbChars[d]}else if(s<=xn){t=xn-s;continue}else if(s<=Dr){for(var h=this.decodeTableSeq[Dr-s],g=0;g>8;s=h[h.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+s+" at "+t+"/"+u);if(s>=65536){s-=65536;var f=55296|s>>10;e[l++]=f&255,e[l++]=f>>8,s=56320|s&1023}e[l++]=s&255,e[l++]=s>>8,t=0,o=a+1}return this.nodeIdx=t,this.prevBytes=o>=0?Array.prototype.slice.call(n,o):i.slice(o+r).concat(Array.prototype.slice.call(n)),e.slice(0,l).toString("ucs2")};gP.prototype.end=function(){for(var n="";this.prevBytes.length>0;){n+=this.defaultCharUnicode;var e=this.prevBytes.slice(1);this.prevBytes=[],this.nodeIdx=0,e.length>0&&(n+=this.write(e))}return this.prevBytes=[],this.nodeIdx=0,n};function pP(n,e){if(n[0]>e)return-1;for(var t=0,i=n.length;t>1);n[r]<=e?t=r:i=r}return t}});var C4=v((GPe,Vle)=>{Vle.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var S4=v((zPe,eue)=>{eue.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var Av=v((KPe,tue)=>{tue.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var fP=v((QPe,iue)=>{iue.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\u1E3F"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93],["8135f437","\uE7C7"]]});var D4=v((VPe,nue)=>{nue.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var T4=v((eRe,rue)=>{rue.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var mP=v((tRe,oue)=>{oue.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var k4=v((iRe,sue)=>{sue.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var R4=v((nRe,P4)=>{"use strict";P4.exports={shiftjis:{type:"_dbcs",table:function(){return C4()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return S4()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return Av()}},gbk:{type:"_dbcs",table:function(){return Av().concat(fP())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return Av().concat(fP())},gb18030:function(){return D4()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return T4()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return mP()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return mP().concat(k4())},encodeSkipVals:[36457,36463,36478,36523,36532,36557,36560,36695,36713,36718,36811,36862,36973,36986,37060,37084,37105,37311,37551,37552,37553,37554,37585,37959,38090,38361,38652,39285,39798,39800,39803,39878,39902,39916,39926,40002,40019,40034,40040,40043,40055,40124,40125,40144,40279,40282,40388,40431,40443,40617,40687,40701,40800,40907,41079,41180,41183,36812,37576,38468,38637,41636,41637,41639,41638,41676,41678]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var I4=v((E4,Lc)=>{"use strict";var _4=[r4(),a4(),c4(),h4(),p4(),m4(),y4(),x4(),R4()];for(Nv=0;Nv<_4.length;Nv++){Lc=_4[Nv];for(Hv in Lc)Object.prototype.hasOwnProperty.call(Lc,Hv)&&(E4[Hv]=Lc[Hv])}var Lc,Hv,Nv});var M4=v((rRe,F4)=>{"use strict";var L4=ms().Buffer;F4.exports=function(n){var e=n.Transform;function t(r,o){this.conv=r,o=o||{},o.decodeStrings=!1,e.call(this,o)}t.prototype=Object.create(e.prototype,{constructor:{value:t}}),t.prototype._transform=function(r,o,s){if(typeof r!="string")return s(new Error("Iconv encoding stream needs strings as its input."));try{var a=this.conv.write(r);a&&a.length&&this.push(a),s()}catch(l){s(l)}},t.prototype._flush=function(r){try{var o=this.conv.end();o&&o.length&&this.push(o),r()}catch(s){r(s)}},t.prototype.collect=function(r){var o=[];return this.on("error",r),this.on("data",function(s){o.push(s)}),this.on("end",function(){r(null,L4.concat(o))}),this};function i(r,o){this.conv=r,o=o||{},o.encoding=this.encoding="utf8",e.call(this,o)}return i.prototype=Object.create(e.prototype,{constructor:{value:i}}),i.prototype._transform=function(r,o,s){if(!L4.isBuffer(r)&&!(r instanceof Uint8Array))return s(new Error("Iconv decoding stream needs buffers as its input."));try{var a=this.conv.write(r);a&&a.length&&this.push(a,this.encoding),s()}catch(l){s(l)}},i.prototype._flush=function(r){try{var o=this.conv.end();o&&o.length&&this.push(o,this.encoding),r()}catch(s){r(s)}},i.prototype.collect=function(r){var o="";return this.on("error",r),this.on("data",function(s){o+=s}),this.on("end",function(){r(null,o)}),this},{IconvLiteEncoderStream:t,IconvLiteDecoderStream:i}}});var N4=v((oRe,A4)=>{"use strict";var j4=ms().Buffer,O4=i4(),Ge=A4.exports;Ge.encodings=null;Ge.defaultCharUnicode="\uFFFD";Ge.defaultCharSingleByte="?";Ge.encode=function(e,t,i){e=""+(e||"");var r=Ge.getEncoder(t,i),o=r.write(e),s=r.end();return s&&s.length>0?j4.concat([o,s]):o};Ge.decode=function(e,t,i){typeof e=="string"&&(Ge.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),Ge.skipDecodeWarning=!0),e=j4.from(""+(e||""),"binary"));var r=Ge.getDecoder(t,i),o=r.write(e),s=r.end();return s?o+s:o};Ge.encodingExists=function(e){try{return Ge.getCodec(e),!0}catch{return!1}};Ge.toEncoding=Ge.encode;Ge.fromEncoding=Ge.decode;Ge._codecDataCache={};Ge.getCodec=function(e){Ge.encodings||(Ge.encodings=I4());for(var t=Ge._canonicalizeEncoding(e),i={};;){var r=Ge._codecDataCache[t];if(r)return r;var o=Ge.encodings[t];switch(typeof o){case"string":t=o;break;case"object":for(var s in o)i[s]=o[s];i.encodingName||(i.encodingName=t),t=o.type;break;case"function":return i.encodingName||(i.encodingName=t),r=new o(i,Ge),Ge._codecDataCache[i.encodingName]=r,r;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+t+"')")}}};Ge._canonicalizeEncoding=function(n){return(""+n).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};Ge.getEncoder=function(e,t){var i=Ge.getCodec(e),r=new i.encoder(t,i);return i.bomAware&&t&&t.addBOM&&(r=new O4.PrependBOM(r,t)),r};Ge.getDecoder=function(e,t){var i=Ge.getCodec(e),r=new i.decoder(t,i);return i.bomAware&&!(t&&t.stripBOM===!1)&&(r=new O4.StripBOM(r,t)),r};Ge.enableStreamingAPI=function(e){if(!Ge.supportsStreams){var t=M4()(e);Ge.IconvLiteEncoderStream=t.IconvLiteEncoderStream,Ge.IconvLiteDecoderStream=t.IconvLiteDecoderStream,Ge.encodeStream=function(r,o){return new Ge.IconvLiteEncoderStream(Ge.getEncoder(r,o),o)},Ge.decodeStream=function(r,o){return new Ge.IconvLiteDecoderStream(Ge.getDecoder(r,o),o)},Ge.supportsStreams=!0}};var Bv;try{Bv=require("stream")}catch{}Bv&&Bv.Transform?Ge.enableStreamingAPI(Bv):Ge.encodeStream=Ge.decodeStream=function(){throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.")}});function B4(n,...e){return n=Object(n),e.forEach(t=>{if(t!=null){t=Object(t);for(let i in t){let r=n[i];(r===void 0||r===H4[i]&&!aue.call(n,i))&&(n[i]=t[i])}}}),n}function ni(n,e){let t={};for(let i of Object.keys(n))e.includes(i)||(t[i]=n[i]);return t}var H4,aue,Tr=D(()=>{"use strict";H4=Object.prototype,aue=H4.hasOwnProperty});function q4(n){try{return process.kill(n,0)==!0}catch(e){return e.code==="EPERM"}}function Al(n){try{vo.sync(n)}catch{return!1}return!0}function Ro(n,e={},t,i=fk===3){i||(e.shell=e.shell||process.env.SHELL),e.maxBuffer=e.maxBuffer??500*1024;let r=e.encoding||"utf8";return r=bP.default.encodingExists(r)?r:"utf8",new Promise((o,s)=>{let a,l;if(typeof t=="number"){let u=setTimeout(()=>{Fc(l),s(new Ct)},t*1e3);a=p.Disposable.create(()=>{clearTimeout(u)})}else p.CancellationToken.is(t)&&(a=t.onCancellationRequested(()=>{Fc(l),s(new Ct)}));l=fn.exec(n,{...ni(e,["encoding"]),encoding:"buffer"},(u,c,d)=>{if(a&&a.dispose(),u){s(new Error(`exited with ${u.code} +${u} +${d.toString("utf8")}`));return}o(bP.default.decode(c,r))})})}function Fc(n,e,t=fk){if(!n.killed)if(t===3)try{let i={stdio:["pipe","pipe","ignore"]};return e&&(i.cwd=e),fn.execFileSync("taskkill",["/T","/F","/PID",n.pid.toString()],i),!0}catch{return!1}else if(t===2||t===1)try{let i=R.join(Do,"bin/terminateProcess.sh");return!fn.spawnSync(i,[n.pid.toString()]).error}catch{return!1}else return n.kill("SIGKILL"),!0}var bP,Nl=D(()=>{"use strict";Jt();Ti();ce();Il();bP=sr(N4());$();Tr()});var yP,Gg,W4=D(()=>{"use strict";ce();at();Nl();yP=sr(Kb()),Gg=class{get nodeFolder(){return Al("npm")?this._npmFolder?Promise.resolve(this._npmFolder):Ro("npm --loglevel silent root -g",{},3e3).then(e=>(this._npmFolder=(0,yP.default)(e).trim(),this._npmFolder)):Promise.resolve("")}get yarnFolder(){return Al("yarnpkg")?this._yarnFolder?Promise.resolve(this._yarnFolder):Ro("yarnpkg global dir",{},3e3).then(e=>{let t=R.join((0,yP.default)(e).trim(),"node_modules"),i=F.existsSync(t);return i&&(this._yarnFolder=t),i?t:""}):Promise.resolve("")}async resolveModule(e){let t=await this.nodeFolder,i=await this.yarnFolder;if(i){let r=await jn(R.join(i,e,"package.json"));if(r&&r.isFile())return R.join(i,e)}if(t){let r=await jn(R.join(t,e,"package.json"));if(r&&r.isFile())return R.join(t,e)}return null}}});function Wv(n,e){if(!e.startsWith("nvim-")&&!e.startsWith("patch-"))throw new Error("Feature param could only starts with nvim and patch");if(!n.isVim&&e.startsWith("patch-")||n.isVim&&e.startsWith("nvim-"))return!1;if(n.isVim){let[t,i,r,o]=n.version.match(/^(\d)(\d{2})(\d+)$/),s=`${i}.${parseInt(r,10)}.${parseInt(o,10)}`;return ur.gte(s,e.slice(6))}return ur.gte(n.version,e.slice(5))}async function Yv(n,e,t){return ai?await n.callAsync("coc#util#with_callback",[e,t]):await n.call(e,t)}function Y4(n){return vP.has(n)?vP.get(n):(qv=qv+1,vP.set(n,qv),qv)}function Z4(n){let e=n.initialConfiguration.get("coc.preferences.watchmanPath","watchman");return vo.sync(e,{nothrow:!0})}async function J4(n,e,t){let i=await n.call("expand","%:p");i=R.normalize(i);let r=i&&R.isAbsolute(i);if(r&&!pt(e,i,!0))return kc(t,R.dirname(i));let o=kc(t,e);return o&&o!=Et.homedir()?o:r?kc(t,R.dirname(i)):null}function U4(n){return lue.resolveModule(n)}function wP(n,e,t,i=eo||El){if(Array.isArray(n)){let r=0;for(let o of n){let s=wP(o,e,t);if(s===10)return s;s>r&&(r=s)}return r}else{if(typeof n=="string")return n==="*"?5:n===t?10:0;if(n&&p.TextDocumentFilter.is(n)){let r=A.parse(e),{language:o,pattern:s,scheme:a}=n,l=0;if(a)if(a===r.scheme)l=5;else if(a==="*")l=3;else return 0;if(o)if(o===t)l=10;else if(o==="*")l=Math.max(l,5);else return 0;if(s){let u=i?s.toLowerCase():s,c=i?r.fsPath.toLowerCase():r.fsPath;if(u===c||si(c,u,{dot:!0}))l=5;else return 0}return l}else return 0}}var qv,lue,vP,xP=D(()=>{"use strict";Je();W4();Jt();at();ce();Il();$();qv=2e3,lue=new Gg,vP=new Map});function V4(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}function uue(n){Mc=n}function zi(n,e){if(e){if(e6.test(n))return n.replace(cue,$4)}else if(t6.test(n))return n.replace(due,$4);return n}function i6(n){return n.replace(gue,(e,t)=>(t=t.toLowerCase(),t==="colon"?":":t.charAt(0)==="#"?t.charAt(1)==="x"?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""))}function jt(n,e){n=typeof n=="string"?n:n.source,e=e||"";let t={replace:(i,r)=>(r=r.source||r,r=r.replace(pue,"$1"),n=n.replace(i,r),t),getRegex:()=>new RegExp(n,e)};return t}function X4(n,e,t){if(n){let i;try{i=decodeURIComponent(i6(t)).replace(fue,"").toLowerCase()}catch{return null}if(i.indexOf("javascript:")===0||i.indexOf("vbscript:")===0||i.indexOf("data:")===0)return null}e&&!mue.test(t)&&(t=wue(e,t));try{t=encodeURI(t).replace(/%25/g,"%")}catch{return null}return t}function wue(n,e){Zv[" "+n]||(bue.test(n)?Zv[" "+n]=n+"/":Zv[" "+n]=Jv(n,"/",!0)),n=Zv[" "+n];let t=n.indexOf(":")===-1;return e.substring(0,2)==="//"?t?e:n.replace(yue,"$1")+e:e.charAt(0)==="/"?t?e:n.replace(vue,"$1")+e:n+e}function ro(n){let e=1,t,i;for(;e{let l=!1,u=s;for(;--u>=0&&a[u]==="\\";)l=!l;return l?"|":" |"}),i=t.split(/ \|/),r=0;if(i[0].trim()||i.shift(),i.length>0&&!i[i.length-1].trim()&&i.pop(),i.length>e)i.splice(e);else for(;i.length1;)e&1&&(t+=n),e>>=1,n+=n;return t+n}function K4(n,e,t,i){let r=e.href,o=e.title?zi(e.title):null,s=n[1].replace(/\\([\[\]])/g,"$1");if(n[0].charAt(0)!=="!"){i.state.inLink=!0;let a={type:"link",raw:t,href:r,title:o,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}return{type:"image",raw:t,href:r,title:o,text:zi(s)}}function Cue(n,e){let t=n.match(/^(\s+)(?:```)/);if(t===null)return e;let i=t[1];return e.split(` +`).map(r=>{let o=r.match(/^\s+/);if(o===null)return r;let[s]=o;return s.length>=i.length?r.slice(i.length):r}).join(` +`)}function Sue(n){return n.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026")}function Q4(n){let e="",t,i,r=n.length;for(t=0;t.5&&(i="x"+i.toString(16)),e+="&#"+i+";";return e}function Ae(n,e,t){if(typeof n>"u"||n===null)throw new Error("marked(): input parameter is undefined or null");if(typeof n!="string")throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected");if(typeof e=="function"&&(t=e,e=null),e=ro({},Ae.defaults,e||{}),n6(e),t){let r=e.highlight,o;try{o=no.lex(n,e)}catch(l){return t(l)}let s=function(l){let u;if(!l)try{e.walkTokens&&Ae.walkTokens(o,e.walkTokens),u=kr.parse(o,e)}catch(c){l=c}return e.highlight=r,l?t(l):t(null,u)};if(!r||r.length<3||(delete e.highlight,!o.length))return s();let a=0;Ae.walkTokens(o,function(l){l.type==="code"&&(a++,setTimeout(()=>{r(l.text,l.lang,function(u,c){if(u)return s(u);c!=null&&c!==l.text&&(l.text=c,l.escaped=!0),a--,a===0&&s()})},0))}),a===0&&s();return}function i(r){if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,e.silent)return"

An error occurred:

"+zi(r.message+"",!0)+"
";throw r}try{let r=no.lex(n,e);if(e.walkTokens){if(e.async)return Promise.all(Ae.walkTokens(r,e.walkTokens)).then(()=>kr.parse(r,e)).catch(i);Ae.walkTokens(r,e.walkTokens)}return kr.parse(r,e)}catch(r){i(r)}}var Mc,e6,cue,t6,due,hue,$4,gue,pue,fue,mue,Zv,bue,yue,vue,Uv,zg,je,be,no,Kg,$v,Xv,kr,TRe,kRe,PRe,RRe,_Re,ERe,IRe,r6=D(()=>{Mc=V4();e6=/[&<>"']/,cue=new RegExp(e6.source,"g"),t6=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,due=new RegExp(t6.source,"g"),hue={"&":"&","<":"<",">":">",'"':""","'":"'"},$4=n=>hue[n];gue=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;pue=/(^|[^\[])\^/g;fue=/[^\w:]/g,mue=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;Zv={},bue=/^[^:]+:\/*[^/]*$/,yue=/^([^:]+:)[\s\S]*$/,vue=/^([^:]+:\/*[^/]*)[\s\S]*$/;Uv={exec:function(){}};zg=class{constructor(e){this.options=e||Mc}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let i=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?i:Jv(i,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let i=t[0],r=Cue(i,t[3]||"");return{type:"code",raw:i,lang:t[2]?t[2].trim().replace(this.rules.inline._escapes,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let i=t[2].trim();if(/#$/.test(i)){let r=Jv(i,"#");(this.options.pedantic||!r||/ $/.test(r))&&(i=r.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:i,tokens:this.lexer.inline(i)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let i=t[0].replace(/^ *>[ \t]?/gm,""),r=this.lexer.state.top;this.lexer.state.top=!0;let o=this.lexer.blockTokens(i);return this.lexer.state.top=r,{type:"blockquote",raw:t[0],tokens:o,text:i}}}list(e){let t=this.rules.block.list.exec(e);if(t){let i,r,o,s,a,l,u,c,d,h,g,f,m=t[1].trim(),y=m.length>1,w={type:"list",raw:"",ordered:y,start:y?+m.slice(0,-1):"",loose:!1,items:[]};m=y?`\\d{1,9}\\${m.slice(-1)}`:`\\${m}`,this.options.pedantic&&(m=y?m:"[*+-]");let x=new RegExp(`^( {0,3}${m})((?:[ ][^\\n]*)?(?:\\n|$))`);for(;e&&(f=!1,!(!(t=x.exec(e))||this.rules.block.hr.test(e)));){if(i=t[0],e=e.substring(i.length),c=t[2].split(` +`,1)[0],d=e.split(` +`,1)[0],this.options.pedantic?(s=2,g=c.trimLeft()):(s=t[2].search(/[^ ]/),s=s>4?1:s,g=c.slice(s),s+=t[1].length),l=!1,!c&&/^ *$/.test(d)&&(i+=d+` +`,e=e.substring(d.length+1),f=!0),!f){let P=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))`),T=new RegExp(`^ {0,${Math.min(3,s-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),O=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:\`\`\`|~~~)`),j=new RegExp(`^ {0,${Math.min(3,s-1)}}#`);for(;e&&(h=e.split(` +`,1)[0],c=h,this.options.pedantic&&(c=c.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(O.test(c)||j.test(c)||P.test(c)||T.test(e)));){if(c.search(/[^ ]/)>=s||!c.trim())g+=` +`+c.slice(s);else if(!l)g+=` +`+c;else break;!l&&!c.trim()&&(l=!0),i+=h+` +`,e=e.substring(h.length+1)}}w.loose||(u?w.loose=!0:/\n *\n *$/.test(i)&&(u=!0)),this.options.gfm&&(r=/^\[[ xX]\] /.exec(g),r&&(o=r[0]!=="[ ] ",g=g.replace(/^\[[ xX]\] +/,""))),w.items.push({type:"list_item",raw:i,task:!!r,checked:o,loose:!1,text:g}),w.raw+=i}w.items[w.items.length-1].raw=i.trimRight(),w.items[w.items.length-1].text=g.trimRight(),w.raw=w.raw.trimRight();let C=w.items.length;for(a=0;aO.type==="space"),T=P.length>0&&P.some(O=>/\n.*\n/.test(O.raw));w.loose=T}if(w.loose)for(a=0;a$/,"$1").replace(this.rules.inline._escapes,"$1"):"",o=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline._escapes,"$1"):t[3];return{type:"def",tag:i,raw:t[0],href:r,title:o}}}table(e){let t=this.rules.block.table.exec(e);if(t){let i={type:"table",header:G4(t[1]).map(r=>({text:r})),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split(` +`):[]};if(i.header.length===i.align.length){i.raw=t[0];let r=i.align.length,o,s,a,l;for(o=0;o({text:u}));for(r=i.header.length,s=0;s/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):zi(t[0]):t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let i=t[2].trim();if(!this.options.pedantic&&/^$/.test(i))return;let s=Jv(i.slice(0,-1),"\\");if((i.length-s.length)%2===0)return}else{let s=xue(t[2],"()");if(s>-1){let l=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,l).trim(),t[3]=""}}let r=t[2],o="";if(this.options.pedantic){let s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);s&&(r=s[1],o=s[3])}else o=t[3]?t[3].slice(1,-1):"";return r=r.trim(),/^$/.test(i)?r=r.slice(1):r=r.slice(1,-1)),K4(t,{href:r&&r.replace(this.rules.inline._escapes,"$1"),title:o&&o.replace(this.rules.inline._escapes,"$1")},t[0],this.lexer)}}reflink(e,t){let i;if((i=this.rules.inline.reflink.exec(e))||(i=this.rules.inline.nolink.exec(e))){let r=(i[2]||i[1]).replace(/\s+/g," ");if(r=t[r.toLowerCase()],!r){let o=i[0].charAt(0);return{type:"text",raw:o,text:o}}return K4(i,r,i[0],this.lexer)}}emStrong(e,t,i=""){let r=this.rules.inline.emStrong.lDelim.exec(e);if(!r||r[3]&&i.match(/[\p{L}\p{N}]/u))return;let o=r[1]||r[2]||"";if(!o||o&&(i===""||this.rules.inline.punctuation.exec(i))){let s=r[0].length-1,a,l,u=s,c=0,d=r[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+s);(r=d.exec(t))!=null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(l=a.length,r[3]||r[4]){u+=l;continue}else if((r[5]||r[6])&&s%3&&!((s+l)%3)){c+=l;continue}if(u-=l,u>0)continue;l=Math.min(l,l+u+c);let h=e.slice(0,s+r.index+(r[0].length-a.length)+l);if(Math.min(s,l)%2){let f=h.slice(1,-1);return{type:"em",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let g=h.slice(2,-2);return{type:"strong",raw:h,text:g,tokens:this.lexer.inlineTokens(g)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let i=t[2].replace(/\n/g," "),r=/[^ ]/.test(i),o=/^ /.test(i)&&/ $/.test(i);return r&&o&&(i=i.substring(1,i.length-1)),i=zi(i,!0),{type:"codespan",raw:t[0],text:i}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e,t){let i=this.rules.inline.autolink.exec(e);if(i){let r,o;return i[2]==="@"?(r=zi(this.options.mangle?t(i[1]):i[1]),o="mailto:"+r):(r=zi(i[1]),o=r),{type:"link",raw:i[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}}url(e,t){let i;if(i=this.rules.inline.url.exec(e)){let r,o;if(i[2]==="@")r=zi(this.options.mangle?t(i[0]):i[0]),o="mailto:"+r;else{let s;do s=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0];while(s!==i[0]);r=zi(i[0]),i[1]==="www."?o="http://"+i[0]:o=i[0]}return{type:"link",raw:i[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(e,t){let i=this.rules.inline.text.exec(e);if(i){let r;return this.lexer.state.inRawBlock?r=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):zi(i[0]):i[0]:r=zi(this.options.smartypants?t(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}},je={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {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|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:Uv,lheading:/^((?:.|\n(?!\n))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};je._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/;je._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;je.def=jt(je.def).replace("label",je._label).replace("title",je._title).getRegex();je.bullet=/(?:[*+-]|\d{1,9}[.)])/;je.listItemStart=jt(/^( *)(bull) */).replace("bull",je.bullet).getRegex();je.list=jt(je.list).replace(/bull/g,je.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+je.def.source+")").getRegex();je._tag="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|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul";je._comment=/|$)/;je.html=jt(je.html,"i").replace("comment",je._comment).replace("tag",je._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();je.paragraph=jt(je._paragraph).replace("hr",je.hr).replace("heading"," {0,3}#{1,6} ").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",je._tag).getRegex();je.blockquote=jt(je.blockquote).replace("paragraph",je.paragraph).getRegex();je.normal=ro({},je);je.gfm=ro({},je.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});je.gfm.table=jt(je.gfm.table).replace("hr",je.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",je._tag).getRegex();je.gfm.paragraph=jt(je._paragraph).replace("hr",je.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",je.gfm.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",je._tag).getRegex();je.pedantic=ro({},je.normal,{html:jt(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",je._comment).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:Uv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:jt(je.normal._paragraph).replace("hr",je.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",je.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});be={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Uv,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Uv,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~";be.punctuation=jt(be.punctuation).replace(/punctuation/g,be._punctuation).getRegex();be.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;be.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g;be._comment=jt(je._comment).replace("(?:-->|$)","-->").getRegex();be.emStrong.lDelim=jt(be.emStrong.lDelim).replace(/punct/g,be._punctuation).getRegex();be.emStrong.rDelimAst=jt(be.emStrong.rDelimAst,"g").replace(/punct/g,be._punctuation).getRegex();be.emStrong.rDelimUnd=jt(be.emStrong.rDelimUnd,"g").replace(/punct/g,be._punctuation).getRegex();be._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;be._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;be._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])?)+(?![-_])/;be.autolink=jt(be.autolink).replace("scheme",be._scheme).replace("email",be._email).getRegex();be._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;be.tag=jt(be.tag).replace("comment",be._comment).replace("attribute",be._attribute).getRegex();be._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;be._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;be._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;be.link=jt(be.link).replace("label",be._label).replace("href",be._href).replace("title",be._title).getRegex();be.reflink=jt(be.reflink).replace("label",be._label).replace("ref",je._label).getRegex();be.nolink=jt(be.nolink).replace("ref",je._label).getRegex();be.reflinkSearch=jt(be.reflinkSearch,"g").replace("reflink",be.reflink).replace("nolink",be.nolink).getRegex();be.normal=ro({},be);be.pedantic=ro({},be.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:jt(/^!?\[(label)\]\((.*?)\)/).replace("label",be._label).getRegex(),reflink:jt(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",be._label).getRegex()});be.gfm=ro({},be.normal,{escape:jt(be.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\l+" ".repeat(u.length));let i,r,o,s;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(a=>(i=a.call({lexer:this},e,t))?(e=e.substring(i.raw.length),t.push(i),!0):!1))){if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length),i.raw.length===1&&t.length>0?t[t.length-1].raw+=` +`:t.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length),r=t[t.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` +`+i.raw,r.text+=` +`+i.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length),r=t[t.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` +`+i.raw,r.text+=` +`+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),t.push(i);continue}if(o=e,this.options.extensions&&this.options.extensions.startBlock){let a=1/0,l=e.slice(1),u;this.options.extensions.startBlock.forEach(function(c){u=c.call({lexer:this},l),typeof u=="number"&&u>=0&&(a=Math.min(a,u))}),a<1/0&&a>=0&&(o=e.substring(0,a+1))}if(this.state.top&&(i=this.tokenizer.paragraph(o))){r=t[t.length-1],s&&r.type==="paragraph"?(r.raw+=` +`+i.raw,r.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(i),s=o.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length),r=t[t.length-1],r&&r.type==="text"?(r.raw+=` +`+i.raw,r.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(i);continue}if(e){let a="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let i,r,o,s=e,a,l,u;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(a=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)c.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,a.index)+"["+z4("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(a=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,a.index)+"["+z4("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(a=this.tokenizer.rules.inline.escapedEmSt.exec(s))!=null;)s=s.slice(0,a.index+a[0].length-2)+"++"+s.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex),this.tokenizer.rules.inline.escapedEmSt.lastIndex--;for(;e;)if(l||(u=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(c=>(i=c.call({lexer:this},e,t))?(e=e.substring(i.raw.length),t.push(i),!0):!1))){if(i=this.tokenizer.escape(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.tag(e)){e=e.substring(i.raw.length),r=t[t.length-1],r&&i.type==="text"&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):t.push(i);continue}if(i=this.tokenizer.link(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(i.raw.length),r=t[t.length-1],r&&i.type==="text"&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):t.push(i);continue}if(i=this.tokenizer.emStrong(e,s,u)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.codespan(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.br(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.del(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.autolink(e,Q4)){e=e.substring(i.raw.length),t.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(e,Q4))){e=e.substring(i.raw.length),t.push(i);continue}if(o=e,this.options.extensions&&this.options.extensions.startInline){let c=1/0,d=e.slice(1),h;this.options.extensions.startInline.forEach(function(g){h=g.call({lexer:this},d),typeof h=="number"&&h>=0&&(c=Math.min(c,h))}),c<1/0&&c>=0&&(o=e.substring(0,c+1))}if(i=this.tokenizer.inlineText(o,Sue)){e=e.substring(i.raw.length),i.raw.slice(-1)!=="_"&&(u=i.raw.slice(-1)),l=!0,r=t[t.length-1],r&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):t.push(i);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return t}},Kg=class{constructor(e){this.options=e||Mc}code(e,t,i){let r=(t||"").match(/\S*/)[0];if(this.options.highlight){let o=this.options.highlight(e,r);o!=null&&o!==e&&(i=!0,e=o)}return e=e.replace(/\n$/,"")+` +`,r?'
'+(i?e:zi(e,!0))+`
+`:"
"+(i?e:zi(e,!0))+`
+`}blockquote(e){return`
+${e}
+`}html(e){return e}heading(e,t,i,r){if(this.options.headerIds){let o=this.options.headerPrefix+r.slug(i);return`${e} +`}return`${e} +`}hr(){return this.options.xhtml?`
+`:`
+`}list(e,t,i){let r=t?"ol":"ul",o=t&&i!==1?' start="'+i+'"':"";return"<"+r+o+`> +`+e+" +`}listitem(e){return`
  • ${e}
  • +`}checkbox(e){return" "}paragraph(e){return`

    ${e}

    +`}table(e,t){return t&&(t=`${t}`),` + +`+e+` +`+t+`
    +`}tablerow(e){return` +${e} +`}tablecell(e,t){let i=t.header?"th":"td";return(t.align?`<${i} align="${t.align}">`:`<${i}>`)+e+` +`}strong(e){return`${e}`}em(e){return`${e}`}codespan(e){return`${e}`}br(){return this.options.xhtml?"
    ":"
    "}del(e){return`${e}`}link(e,t,i){if(e=X4(this.options.sanitize,this.options.baseUrl,e),e===null)return i;let r='",r}image(e,t,i){if(e=X4(this.options.sanitize,this.options.baseUrl,e),e===null)return i;let r=`${i}":">",r}text(e){return e}},$v=class{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,i){return""+i}image(e,t,i){return""+i}br(){return""}},Xv=class{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,t){let i=e,r=0;if(this.seen.hasOwnProperty(i)){r=this.seen[e];do r++,i=e+"-"+r;while(this.seen.hasOwnProperty(i))}return t||(this.seen[e]=r,this.seen[i]=0),i}slug(e,t={}){let i=this.serialize(e);return this.getNextSafeSlug(i,t.dryrun)}},kr=class{constructor(e){this.options=e||Mc,this.options.renderer=this.options.renderer||new Kg,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new $v,this.slugger=new Xv}static parse(e,t){return new kr(t).parse(e)}static parseInline(e,t){return new kr(t).parseInline(e)}parse(e,t=!0){let i="",r,o,s,a,l,u,c,d,h,g,f,m,y,w,x,C,P,T,O,j=e.length;for(r=0;r0&&x.tokens[0].type==="paragraph"?(x.tokens[0].text=T+" "+x.tokens[0].text,x.tokens[0].tokens&&x.tokens[0].tokens.length>0&&x.tokens[0].tokens[0].type==="text"&&(x.tokens[0].tokens[0].text=T+" "+x.tokens[0].tokens[0].text)):x.tokens.unshift({type:"text",text:T}):w+=T),w+=this.parse(x.tokens,y),h+=this.renderer.listitem(w,P,C);i+=this.renderer.list(h,f,m);continue}case"html":{i+=this.renderer.html(g.text);continue}case"paragraph":{i+=this.renderer.paragraph(this.parseInline(g.tokens));continue}case"text":{for(h=g.tokens?this.parseInline(g.tokens):g.text;r+1{let i=ro({},t);if(i.async=Ae.defaults.async||i.async,t.extensions&&(t.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if(r.renderer){let o=e.renderers[r.name];o?e.renderers[r.name]=function(...s){let a=r.renderer.apply(this,s);return a===!1&&(a=o.apply(this,s)),a}:e.renderers[r.name]=r.renderer}if(r.tokenizer){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");e[r.level]?e[r.level].unshift(r.tokenizer):e[r.level]=[r.tokenizer],r.start&&(r.level==="block"?e.startBlock?e.startBlock.push(r.start):e.startBlock=[r.start]:r.level==="inline"&&(e.startInline?e.startInline.push(r.start):e.startInline=[r.start]))}r.childTokens&&(e.childTokens[r.name]=r.childTokens)}),i.extensions=e),t.renderer){let r=Ae.defaults.renderer||new Kg;for(let o in t.renderer){let s=r[o];r[o]=(...a)=>{let l=t.renderer[o].apply(r,a);return l===!1&&(l=s.apply(r,a)),l}}i.renderer=r}if(t.tokenizer){let r=Ae.defaults.tokenizer||new zg;for(let o in t.tokenizer){let s=r[o];r[o]=(...a)=>{let l=t.tokenizer[o].apply(r,a);return l===!1&&(l=s.apply(r,a)),l}}i.tokenizer=r}if(t.walkTokens){let r=Ae.defaults.walkTokens;i.walkTokens=function(o){let s=[];return s.push(t.walkTokens.call(this,o)),r&&(s=s.concat(r.call(this,o))),s}}Ae.setOptions(i)})};Ae.walkTokens=function(n,e){let t=[];for(let i of n)switch(t=t.concat(e.call(Ae,i)),i.type){case"table":{for(let r of i.header)t=t.concat(Ae.walkTokens(r.tokens,e));for(let r of i.rows)for(let o of r)t=t.concat(Ae.walkTokens(o.tokens,e));break}case"list":{t=t.concat(Ae.walkTokens(i.items,e));break}default:Ae.defaults.extensions&&Ae.defaults.extensions.childTokens&&Ae.defaults.extensions.childTokens[i.type]?Ae.defaults.extensions.childTokens[i.type].forEach(function(r){t=t.concat(Ae.walkTokens(i[r],e))}):i.tokens&&(t=t.concat(Ae.walkTokens(i.tokens,e)))}return t};Ae.parseInline=function(n,e){if(typeof n>"u"||n===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof n!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected");e=ro({},Ae.defaults,e||{}),n6(e);try{let t=no.lexInline(n,e);return e.walkTokens&&Ae.walkTokens(t,e.walkTokens),kr.parseInline(t,e)}catch(t){if(t.message+=` +Please report this to https://github.com/markedjs/marked.`,e.silent)return"

    An error occurred:

    "+zi(t.message+"",!0)+"
    ";throw t}};Ae.Parser=kr;Ae.parser=kr.parse;Ae.Renderer=Kg;Ae.TextRenderer=$v;Ae.Lexer=no;Ae.lexer=no.lex;Ae.Tokenizer=zg;Ae.Slugger=Xv;Ae.parse=Ae;TRe=Ae.options,kRe=Ae.setOptions,PRe=Ae.use,RRe=Ae.walkTokens,_Re=Ae.parseInline,ERe=kr.parse,IRe=no.lex});function jc(n,e=!1){let t=Qg(n),i=[],r="";for(let o of t){if(!o.text)continue;let{foreground:s,background:a}=o,l=de(r),u=[l,l+de(o.text)];if(s&&a){let c=`CocList${cs(s)}${cs(a)}`;i.push({span:u,hlGroup:c})}else if(s){let c;e?s=="yellow"?c="CocMarkdownCode":s=="blue"?c="CocMarkdownLink":s=="magenta"?c="CocMarkdownHeader":c=`CocListFg${cs(s)}`:c=`CocListFg${cs(s)}`,i.push({span:u,hlGroup:c})}else if(a){let c=`CocListBg${cs(a)}`;i.push({span:u,hlGroup:c})}o.bold?i.push({span:u,hlGroup:"CocBold"}):o.italic?i.push({span:u,hlGroup:"CocItalic"}):o.underline?i.push({span:u,hlGroup:"CocUnderline"}):o.strikethrough&&i.push({span:u,hlGroup:"CocStrikeThrough"}),r=r+o.text}return{line:r,highlights:i}}function Qg(n){let e=null,t=null,i="",r=[],o=[],s={},a;a=()=>{let l,u;i.length?i=i.substr(0,i.length-1):o.length&&(l=o.length-1,u=o[l].text,u.length===1?o.pop():o[l].text=u.substr(0,u.length-1))};for(let l=0;l{o6[u]?s.foreground=o6[u]:s6[u]?s.background=s6[u]:u==39?delete s.foreground:u==49?delete s.background:a6[u]?s[a6[u]]=!0:u==22?s.bold=!1:u==23?s.italic=!1:u==24?s.underline=!1:u==29&&(s.strikethrough=!1)}),r=[]):t+=n[l];continue}n[l]=="\x1B"?e=n[l]:n[l]=="\b"?a():i+=n[l]}return i&&(s.text=i+se(e),o.push(s)),o}var o6,s6,a6,Oc=D(()=>{"use strict";pe();o6={30:"black",31:"red",32:"green",33:"yellow",34:"blue",35:"magenta",36:"cyan",37:"white",90:"grey"},s6={40:"black",41:"red",42:"green",43:"yellow",44:"blue",45:"magenta",46:"cyan",47:"white"},a6={1:"bold",3:"italic",4:"underline",9:"strikethrough"}});function l6(n){return`${Yi.gray.open}${n}${Yi.gray.close}`}function CP(n){return`${Yi.magenta.open}${n}${Yi.magenta.close}`}function u6(n){return`${Yi.bold.open}${n}${Yi.bold.close}`}function SP(n){return`${Yi.underline.open}${n}${Yi.underline.close}`}function c6(n){return`${Yi.strikethrough.open}${n}${Yi.strikethrough.close}`}function d6(n){return`${Yi.italic.open}${n}${Yi.italic.close}`}function h6(n){return`${Yi.yellow.open}${n}${Yi.yellow.close}`}function DP(n){return`${Yi.blue.open}${n}${Yi.blue.close}`}var g6=D(()=>{"use strict";ce()});var b6=v((ORe,m6)=>{var f6={};m6.exports=f6;var p6={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(p6).forEach(function(n){var e=p6[n],t=f6[n]=[];t.open="\x1B["+e[0]+"m",t.close="\x1B["+e[1]+"m"})});var v6=v((ARe,y6)=>{var Vg=process.argv;y6.exports=function(){return Vg.indexOf("--no-color")!==-1||Vg.indexOf("--color=false")!==-1?!1:Vg.indexOf("--color")!==-1||Vg.indexOf("--color=true")!==-1||Vg.indexOf("--color=always")!==-1?!0:process.stdout&&!process.stdout.isTTY?!1:process.platform==="win32"||"COLORTERM"in process.env?!0:process.env.TERM==="dumb"?!1:!!/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)}()});var x6=v((NRe,w6)=>{w6.exports=function(e,t){var i="";e=e||"Run the trap, drop the bass",e=e.split("");var r={a:["@","\u0104","\u023A","\u0245","\u0394","\u039B","\u0414"],b:["\xDF","\u0181","\u0243","\u026E","\u03B2","\u0E3F"],c:["\xA9","\u023B","\u03FE"],d:["\xD0","\u018A","\u0500","\u0501","\u0502","\u0503"],e:["\xCB","\u0115","\u018E","\u0258","\u03A3","\u03BE","\u04BC","\u0A6C"],f:["\u04FA"],g:["\u0262"],h:["\u0126","\u0195","\u04A2","\u04BA","\u04C7","\u050A"],i:["\u0F0F"],j:["\u0134"],k:["\u0138","\u04A0","\u04C3","\u051E"],l:["\u0139"],m:["\u028D","\u04CD","\u04CE","\u0520","\u0521","\u0D69"],n:["\xD1","\u014B","\u019D","\u0376","\u03A0","\u048A"],o:["\xD8","\xF5","\xF8","\u01FE","\u0298","\u047A","\u05DD","\u06DD","\u0E4F"],p:["\u01F7","\u048E"],q:["\u09CD"],r:["\xAE","\u01A6","\u0210","\u024C","\u0280","\u042F"],s:["\xA7","\u03DE","\u03DF","\u03E8"],t:["\u0141","\u0166","\u0373"],u:["\u01B1","\u054D"],v:["\u05D8"],w:["\u0428","\u0460","\u047C","\u0D70"],x:["\u04B2","\u04FE","\u04FC","\u04FD"],y:["\xA5","\u04B0","\u04CB"],z:["\u01B5","\u0240"]};return e.forEach(function(o){o=o.toLowerCase();var s=r[o]||[" "],a=Math.floor(Math.random()*s.length);typeof r[o]<"u"?i+=r[o][a]:i+=o}),i}});var S6=v((HRe,C6)=>{C6.exports=function(e,t){e=e||" he is here ";var i={up:["\u030D","\u030E","\u0304","\u0305","\u033F","\u0311","\u0306","\u0310","\u0352","\u0357","\u0351","\u0307","\u0308","\u030A","\u0342","\u0313","\u0308","\u034A","\u034B","\u034C","\u0303","\u0302","\u030C","\u0350","\u0300","\u0301","\u030B","\u030F","\u0312","\u0313","\u0314","\u033D","\u0309","\u0363","\u0364","\u0365","\u0366","\u0367","\u0368","\u0369","\u036A","\u036B","\u036C","\u036D","\u036E","\u036F","\u033E","\u035B","\u0346","\u031A"],down:["\u0316","\u0317","\u0318","\u0319","\u031C","\u031D","\u031E","\u031F","\u0320","\u0324","\u0325","\u0326","\u0329","\u032A","\u032B","\u032C","\u032D","\u032E","\u032F","\u0330","\u0331","\u0332","\u0333","\u0339","\u033A","\u033B","\u033C","\u0345","\u0347","\u0348","\u0349","\u034D","\u034E","\u0353","\u0354","\u0355","\u0356","\u0359","\u035A","\u0323"],mid:["\u0315","\u031B","\u0300","\u0301","\u0358","\u0321","\u0322","\u0327","\u0328","\u0334","\u0335","\u0336","\u035C","\u035D","\u035E","\u035F","\u0360","\u0362","\u0338","\u0337","\u0361"," \u0489"]},r=[].concat(i.up,i.down,i.mid),o={};function s(u){var c=Math.floor(Math.random()*u);return c}function a(u){var c=!1;return r.filter(function(d){c=d===u}),c}function l(u,c){var d="",h,g;c=c||{},c.up=c.up||!0,c.mid=c.mid||!0,c.down=c.down||!0,c.size=c.size||"maxi",u=u.split("");for(g in u)if(!a(g)){switch(d=d+u[g],h={up:0,down:0,mid:0},c.size){case"mini":h.up=s(8),h.min=s(2),h.down=s(8);break;case"maxi":h.up=s(16)+3,h.min=s(4)+1,h.down=s(64)+3;break;default:h.up=s(8)+1,h.mid=s(6)/2,h.down=s(8)+1;break}var f=["up","mid","down"];for(var m in f)for(var y=f[m],w=0;w<=h[y];w++)c[y]&&(d=d+i[y][s(i[y].length)])}return d}return l(e)}});var T6=v((BRe,D6)=>{var TP=Ac();D6.exports=function(){return function(n,e,t){if(n===" ")return n;switch(e%3){case 0:return TP.red(n);case 1:return TP.white(n);case 2:return TP.blue(n)}}}()});var P6=v((qRe,k6)=>{var Tue=Ac();k6.exports=function(n,e,t){return e%2===0?n:Tue.inverse(n)}});var _6=v((WRe,R6)=>{var kue=Ac();R6.exports=function(){var n=["red","yellow","green","blue","magenta"];return function(e,t,i){return e===" "?e:kue[n[t++%n.length]](e)}}()});var I6=v((YRe,E6)=>{var Pue=Ac();E6.exports=function(){var n=["underline","inverse","grey","yellow","red","green","blue","white","cyan","magenta"];return function(e,t,i){return e===" "?e:Pue[n[Math.round(Math.random()*(n.length-1))]](e)}}()});var Ac=v((JRe,A6)=>{var It={};A6.exports=It;It.themes={};var fa=It.styles=b6(),M6=Object.defineProperties;It.supportsColor=v6();typeof It.enabled>"u"&&(It.enabled=It.supportsColor);It.stripColors=It.strip=function(n){return(""+n).replace(/\x1B\[\d+m/g,"")};var ZRe=It.stylize=function(e,t){return fa[t].open+e+fa[t].close},Rue=/[|\\{}()[\]^$+*?.]/g,_ue=function(n){if(typeof n!="string")throw new TypeError("Expected a string");return n.replace(Rue,"\\$&")};function j6(n){var e=function t(){return Iue.apply(t,arguments)};return e._styles=n,e.__proto__=Eue,e}var O6=function(){var n={};return fa.grey=fa.gray,Object.keys(fa).forEach(function(e){fa[e].closeRe=new RegExp(_ue(fa[e].close),"g"),n[e]={get:function(){return j6(this._styles.concat(e))}}}),n}(),Eue=M6(function(){},O6);function Iue(){var n=arguments,e=n.length,t=e!==0&&String(arguments[0]);if(e>1)for(var i=1;i{var Mue=Ac();N6.exports=Mue});var q6=v(Nc=>{Nc.repeat=function(n,e){return Array(e+1).join(n)};Nc.pad=function(n,e,t,i){if(e+1>=n.length)switch(i){case"left":n=Array(e+1-n.length).join(t)+n;break;case"both":var r=Math.ceil((padlen=e-n.length)/2),o=padlen-r;n=Array(o+1).join(t)+n+Array(r+1).join(t);break;default:n=n+Array(e+1-n.length).join(t)}return n};Nc.truncate=function(n,e,t){return t=t||"\u2026",n.length>=e?n.substr(0,e-t.length)+t:n};function B6(n,e){for(var t in e)t==="__proto__"||t==="constructor"||t==="prototype"||(e[t]&&e[t].constructor&&e[t].constructor===Object?(n[t]=n[t]||{},B6(n[t],e[t])):n[t]=e[t]);return n}Nc.options=B6;Nc.strlen=function(n){var e=/\u001b\[(?:\d*;){0,5}\d*m/g,t=(""+n).replace(e,""),i=t.split(` +`);return i.reduce(function(r,o){return o.length>r?o.length:r},0)}});var W6=v((XRe,PP)=>{var jue=H6(),Hl=q6(),kP=Hl.repeat,Oue=Hl.truncate,Aue=Hl.pad;function ep(n){if(this.options=Hl.options({chars:{top:"\u2500","top-mid":"\u252C","top-left":"\u250C","top-right":"\u2510",bottom:"\u2500","bottom-mid":"\u2534","bottom-left":"\u2514","bottom-right":"\u2518",left:"\u2502","left-mid":"\u251C",mid:"\u2500","mid-mid":"\u253C",right:"\u2502","right-mid":"\u2524",middle:"\u2502"},truncate:"\u2026",colWidths:[],colAligns:[],style:{"padding-left":1,"padding-right":1,head:["red"],border:["grey"],compact:!1},head:[]},n),n&&n.rows)for(var e=0;eP&&(P=fe),C.push({contents:B,height:fe})});var q=new Array(P);C.forEach(function(X,z){X.contents.forEach(function(ve,Le){q[Le]||(q[Le]=[]),(x||j&&z===0&&e.style.head)&&(ve=f(e.style.head,ve)),q[Le].push(ve)});for(var B=X.height,fe=P;B0&&(K+=` +`+f(e.style.border,r.left)),K+=X.join(f(e.style.border,r.middle))+f(e.style.border,r.right)}),f(e.style.border,r.left)+K}function f(w,x){return x?(w.forEach(function(C){x=jue[C](x)}),x):""}function m(C,x){var C=String(typeof C=="object"&&C.text?C.text:C),P=Hl.strlen(C),T=s[x]-(t["padding-left"]||0)-(t["padding-right"]||0),O=e.colAligns[x]||"left";return kP(" ",t["padding-left"]||0)+(P==T?C:P]+)>)/ig,""))}function Y6(n,e){return e?n.replace(Bue,` +`):n}function Yue(n,e){return e.replace(/(^|\n)(.+)/g,"$1"+n+"$2")}function Zue(n,e){return e&&n+e.split(` +`).join(` +`+n)}function $ue(n,e){let t=new RegExp("(\\S(?: | )?)((?:"+e+")+)("+X6+"(?:.*)+)$","gm");return n.replace(t,`$1 +`+e+"$2$3")}function z6(n){return" ".repeat(n.length)}function Xue(n,e){return G6(e,n)?e:z6(IP)+e}function Gue(n,e){let t=Xue.bind(null,e);return n.split(` +`).filter(_o).map(t).join(` +`)}function zue(n,e,t){return G6(e,n)?{num:t+1,line:e.replace(IP,Z6(t+1))}:{num:t,line:z6(Z6(t))+e}}function Kue(n,e){let t=zue.bind(null,e),i=0;return n.split(` +`).filter(_o).map(r=>{let o=t(r,i);return i=o.num,o.line}).join(` +`)}function Que(n,e,t){return n=n.trim(),n=e?Kue(n,t):Gue(n,t),n}function tp(n){return n+` + +`}function Vue(n){return n.replace(Hue,":")}function J6(n,e=null){if(!n)return[];e=e||_o;let t=e(n).split(` +`),i=[];return t.forEach(function(r){if(!r)return;let o=r.replace(Nue,"").split(U6);i.push(o.splice(0,o.length-1))}),i}function K6(n){return n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function ece(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'")}var U6,_P,Nue,$6,Hue,Bue,Wue,Jue,Uue,X6,G6,IP,Z6,RP,EP,LP,Q6=D(()=>{"use strict";Be();g6();U6="^*||*^",_P="*|*|*|*",Nue=new RegExp(K6(_P),"g"),$6="*#COLON|*",Hue=new RegExp(K6($6),"g"),Bue=/\r/g;Wue={code:_o,blockquote:_o,html:que,heading:CP,firstHeading:CP,hr:_o,listitem:_o,list:Que,table:_o,paragraph:_o,strong:u6,em:d6,codespan:h6,del:c6,link:SP,href:SP,text:_o,unescape:!0,emoji:!1,width:80,showSectionPrefix:!1,tab:2,tableOptions:{}};Jue="\\*",Uue="\\d+\\.",X6="(?:"+[Jue,Uue].join("|")+")";G6=function(n,e){return n.match("^(?:"+e+")*"+X6)!=null};IP="* ";Z6=function(n){return n+". "};RP=new Map,EP=class{constructor(e={},t={}){this.options=e;this.highlightOptions=t;this.o=Object.assign({},Wue,e),this.tab=" ",this.tableSettings=this.o.tableOptions,this.unescape=ece,this.highlightOptions=$e(t),this.transform=this.compose(Vue,this.unescape)}text(e){return this.o.text(e)}code(e,t,i){return"``` "+t+` +`+e+"\n```\n"}blockquote(e){return tp(this.o.blockquote(Zue(this.tab,e.trim())))}html(e){return this.o.html(e)}heading(e,t,i){return e=this.transform(e),tp(t===1?this.o.firstHeading(e):this.o.heading(e))}hr(){return`\u2500\u2500\u2500 +`}list(e,t){return e=this.o.list(e,t,this.tab),tp($ue(Yue(this.tab,e),this.tab))}listitem(e){let t=this.compose(this.o.listitem,this.transform);return e.indexOf(` +`)!==-1&&(e=e.trim()),` +`+IP+t(e)}checkbox(e){return"["+(e?"X":" ")+"] "}paragraph(e){return e=this.compose(this.o.paragraph,this.transform)(e),tp(e)}table(e,t){let i=W6(),r=new i(Object.assign({},{head:J6(e)[0]},this.tableSettings));return J6(t,this.transform).forEach(function(o){r.push(o)}),tp(this.o.table(r.toString()))}tablerow(e){return _P+e+_P+` +`}tablecell(e,t){return e+U6}strong(e){return this.o.strong(e)}em(e){return e=Y6(e,this.o.reflowText),this.o.em(e)}codespan(e){return e=Y6(e,this.o.reflowText),this.o.codespan(e.replace(/:/g,$6))}br(){return` +`}del(e){return this.o.del(e)}link(e,t,i){let r;try{r=decodeURIComponent(unescape(e)).replace(/[^\w:]/g,"").toLowerCase()}catch{return""}if(r.startsWith("javascript:"))return"";if(i&&e&&i!=e&&RP.set(i,e),i&&i!=e)return DP(i);let o=this.o.href(e);return this.o.link(o)}image(e,t,i){return"!["+i+"]("+e+")"}compose(...e){return(...t)=>{for(let i=e.length;i-- >0;)t=[e[i].apply(this,t)];return t[0]}}static getLinks(){let e=[];for(let[t,i]of RP.entries())e.push(`${DP(t)}: ${i}`);return RP.clear(),e}},LP=EP});function sce(n){if(!n)return rce;let e=tce[n];return Ue(e)?e:n}function zv(n,e={}){let t=[],i=[],r=[],o=0;for(let s of n){let a=t.length,{content:l,filetype:u}=s,c=s.highlights;if(u==ice){let d=lce(l,e);r.push(...d.codes.map(h=>(h.startLine=h.startLine+a,h.endLine=h.endLine+a,h))),i.push(...d.highlights.map(h=>(h.lnum=h.lnum+a,h))),t.push(...d.lines)}else{let d=l.trim().split(/\r?\n/),h=V6[s.filetype];Ue(h)?r.push({hlGroup:h,startLine:a,endLine:a+d.length}):r.push({filetype:s.filetype,startLine:a,endLine:a+d.length}),t.push(...d)}if(Array.isArray(c)&&i.push(...c.map(d=>Object.assign({},d,{lnum:d.lnum+a}))),Array.isArray(s.active)){let d=ace(l,a,s.active);d.length&&i.push(...d)}o!=n.length-1&&(i.push({lnum:t.length,hlGroup:eZ,colStart:0,colEnd:-1}),t.push(tZ)),o=o+1}return{lines:t,highlights:i,codes:r}}function ace(n,e,t){let i=[],[r,o]=t,s=n.split(/\r?\n/),a=0,l=!1;for(let u=0;uo){let d=rt(c,o-a);i.push({colStart:0,colEnd:d,lnum:u+e,hlGroup:Gv}),l=!1;break}else{let d=de(c);i.push({colStart:0,colEnd:d,lnum:u+e,hlGroup:Gv})}else if(a+c.length>r){l=!0;let d=rt(c,r-a);if(a+c.length>o){let h=rt(c,o-a);l=!1,i.push({colStart:d,colEnd:h,lnum:u+e,hlGroup:Gv});break}else{let h=de(c);i.push({colStart:d,colEnd:h,lnum:u+e,hlGroup:Gv})}}a=a+c.length+1}return i}function lce(n,e){Ae.setOptions({renderer:new LP,gfm:!0,breaks:_n(e.breaks)?e.breaks:!0});let t=[],i=[],r=[],o=0,s=!1,a,l=0,u=Ae(n),c=LP.getLinks();u=u.replace(/\s*$/,""),c.length&&(u=u+` + +`+c.join(` +`));let d=u.split(/\n/);for(let h=0;h{"use strict";r6();Oc();Xe();ce();pe();Q6();V6=(r=>(r.Error="CocErrorFloat",r.Warning="CocWarningFloat",r.Info="CocInfoFloat",r.Hint="CocHintFloat",r))(V6||{}),tce={js:"javascript",ts:"typescript",bash:"sh"},Gv="CocFloatActive",eZ="CocFloatDividingLine",ice="markdown",nce="```",rce="txt",tZ="\u2500",oce="\u2500\u2500\u2500"});var uce,Bl,MP=D(()=>{"use strict";ce();Re();FP();ee();Se();fs();Be();$();Jt();uce=ge(100,10),Bl=class{constructor(e){this.nvim=e;this.winid=0;this._bufnr=0;this.mutex=new Oi;this.disposables=[];this.onCursorMoved=mt(this._onCursorMoved.bind(this),uce)}bindEvents(e,t){let i=["InsertLeave","InsertEnter","BufEnter"];for(let r of i)_.on(r,o=>{o!=this._bufnr&&this.close()},null,this.disposables);_.on("MenuPopupChanged",()=>{_.pumAlignTop==t&&this.close()},null,this.disposables),this.disposables.push(p.Disposable.create(()=>{this.onCursorMoved.clear()})),_.on("CursorMoved",this.onCursorMoved.bind(this,e),this,this.disposables),_.on("CursorMovedI",this.onCursorMoved.bind(this,e),this,this.disposables)}unbind(){this.disposables.length&&(Y(this.disposables),this.disposables=[])}_onCursorMoved(e,t,i){if(t!=this._bufnr&&!(t==this.targetBufnr&&Fe(i,this.cursor))&&(t!=this.targetBufnr||!_.insertMode||e)){this.close();return}}async create(e,t=!1,i=0){await this.show(e,{offsetX:i})}async show(e,t={}){if(e.length==0||e.every(o=>o.content.length==0)){this.close();return}let i=Date.now(),r=await this.mutex.acquire();try{await this.createPopup(e,t,i),r()}catch(o){this.nvim.echoError(o),r()}}async createPopup(e,t,i){e=e.filter(m=>m.content.trim().length>0);let{lines:r,codes:o,highlights:s}=zv(e,{excludeImages:t.excludeImages,breaks:t.breaks}),a={codes:o,highlights:s,pumAlignTop:_.pumAlignTop,preferTop:typeof t.preferTop=="boolean"?t.preferTop:!1,offsetX:t.offsetX||0,title:t.title||"",close:t.close?1:0,rounded:t.rounded?1:0,modes:t.modes||["n","i","ic","s"],zindex:1};ai||(typeof t.winblend=="number"&&(a.winblend=t.winblend),t.focusable!=null&&(a.focusable=t.focusable?1:0),t.shadow&&(a.shadow=1)),t.maxHeight&&(a.maxHeight=t.maxHeight),t.maxWidth&&(a.maxWidth=t.maxWidth),t.border===!0?a.border=[1,1,1,1]:Array.isArray(t.border)&&!t.border.every(m=>m==0)&&(a.border=t.border.slice(0,4),a.rounded=t.rounded?1:0),t.highlight&&(a.highlight=t.highlight),t.borderhighlight&&(a.borderhighlight=t.borderhighlight),t.cursorline&&(a.cursorline=1);let l=t.autoHide!==!1;l&&(a.autohide=1),this.unbind();let u=await this.nvim.call("coc#dialog#create_cursor_float",[this.winid,this._bufnr,r,a]);if(this.nvim.redrawVim(),te(u)||this.closeTs>i){let m=u&&u.length>0?u[2]:this.winid;m&&(this.winid=0,this.nvim.call("coc#float#close",[m],!0),this.nvim.redrawVim());return}let[c,d,h,g,f]=u;this.winid=h,this._bufnr=g,this.targetBufnr=c,this.cursor=d,this.bindEvents(l,f==1)}close(){let{winid:e,nvim:t}=this;this.closeTs=Date.now(),this.unbind(),e&&(this.winid=0,t.call("coc#float#close",[e],!0),t.redrawVim())}checkRetrigger(e){return!!(this.winid&&this.targetBufnr==e)}get bufnr(){return this._bufnr}get buffer(){return this.bufnr?this.nvim.createBuffer(this.bufnr):null}get window(){return this.winid?this.nvim.createWindow(this.winid):null}async activated(){return this.winid?await this.nvim.call("coc#float#valid",[this.winid])!=0:!1}dispose(){this.cursor=void 0,this.onCursorMoved.clear(),this.close()}}});async function ip(n){let[e,t]=await n.eval("[line('.')-1, strpart(getline('.'), 0, col('.') - 1)]");return V.create(e,t.length)}async function Kv(n){let[e,t,i]=await n.eval("[getline('.'), line('.'), strpart(getline('.'), 0, col('.') - 1)]");return{text:e,line:t-1,character:i.length}}function iZ(n,e,t){let i=Object.assign({},t,e),r=new Bl(n);return{get window(){return r.window},show:(o,s)=>r.show(o,s?Object.assign({},i,s):i),activated:()=>r.activated(),dispose:()=>{r.dispose()},checkRetrigger:o=>r.checkRetrigger(o),close:()=>{r.close()}}}async function nZ(n,e){return await n.callAsync("coc#dialog#prompt_confirm",[e])==1}async function rZ(n,e,t){await n.call("coc#cursor#move_to",[e.line,e.character]),t&&n.command("redraw",!0)}async function oZ(n){return await n.call("coc#cursor#char_offset")}async function sZ(n){let[e,t]=await n.call("coc#cursor#screen_pos");return{row:e,col:t}}async function aZ(n,e,t,i){let r=e.cmdheight;t.length>r&&i&&(t=t.slice(0,r));let o=e.columns-12;if(t=t.map(s=>(s=s.replace(/\n/g," "),i&&(s=s.slice(0,o)),s)),i&&t.length==r){let s=t[t.length-1];t[r-1]=`${s.length>=o?s.slice(0,-4):s} ...`}await n.call("coc#ui#echo_lines",[t])}function lZ(n,e,t,i){let r="Error",o=2;switch(t){case"more":o=0,r="MoreMsg";break;case"warning":o=1,r="WarningMsg";break}o>=dce(i)&&n[ai?"callTimer":"call"]("coc#ui#echo_messages",[r,("[coc.nvim] "+e).split(` +`)],!0)}function dce(n){switch(n){case"error":return 2;case"warning":return 1;default:return 0}}async function uZ(n,e){if(e==="currline"){let i=await n.call("line",["."]);return M.create(i-1,0,i,0)}if(e==="cursor"){let i=await ip(n);return M.create(i,i)}let t=await n.call("coc#cursor#get_selection",[cce.includes(e)?1:0]);return!t||t[0]==-1?null:M.create(t[0],t[1],t[2],t[3])}async function cZ(n,e,t){let{start:i,end:r}=e,[o,s]=await n.eval(`[getline(${i.line+1}),getline(${r.line+1})]`),a=o.length>0?rt(o,i.character):0,l,u,c=r.character==0;if(c){u=r.line==0?0:r.line-1;let d=await n.call("getline",[u+1]);l=de(d)}else u=r.line,l=s.length>0?rt(s,r.character):0;n.pauseNotification(),n.command(`noa call cursor(${i.line+1},${a+1})`,!0),n.command("normal! v",!0),n.command(`noa call cursor(${u+1},${l})`,!0),c&&n.command("normal! $",!0),await n.resumeNotification(t)}var cce,ql=D(()=>{"use strict";ae();MP();Jt();pe();cce=["char","line","block"]});var Qv,hZ=D(()=>{"use strict";Re();JY();Ik();UY();XY();VY();ee();Se();Jt();fs();aa();Il();pe();xP();ql();Qv=class{constructor(){this.mutex=new Oi}async showDialog(e){return await this.mutex.use(async()=>{let t=new yv(this.nvim,e);return await t.show(this.dialogPreference),t})}async showPrompt(e){return await this.mutex.use(()=>nZ(this.nvim,e))}async createQuickPick(e){return await this.mutex.use(async()=>{let t=new Rc(this.nvim,this.dialogPreference);return Object.assign(t,e),t})}async showMenuPicker(e,t,i){return await this.mutex.use(async()=>{if(i&&i.isCancellationRequested)return-1;t=t||{},typeof t=="string"&&(t={title:t});let r=new Zg(this.nvim,{items:e,...t},i),o=new Promise(s=>{r.onDidClose(a=>{_.race(["BufHidden"],20).finally(()=>{s(a)})})});return await r.show(this.dialogPreference),await o})}async showQuickPick(e,t,i){t=ye(t,{});let r=await Promise.resolve(e);if(te(r))return;let o=r.some(s=>typeof s=="string");return await this.mutex.use(()=>new Promise((s,a)=>{if(i.isCancellationRequested)return s(void 0);let l=new Rc(this.nvim,this.dialogPreference);l.items=r.map(u=>typeof u=="string"?{label:u}:u),l.title=se(t.title),l.placeholder=t.placeholder,l.canSelectMany=!!t.canPickMany,l.matchOnDescription=t.matchOnDescription,l.onDidFinish(u=>{if(u==null)return s(void 0);let c=o?u.map(d=>d.label):u;if(t.canPickMany)return s(c);s(c[0])}),l.show().catch(a)}))}async showPickerDialog(e,t,i){return await this.mutex.use(async()=>{if(i&&i.isCancellationRequested)return;let r=new Jg(this.nvim,{title:t,items:$Y(e)},i),o=new Promise(a=>{r.onDidClose(l=>{a(l)})});await r.show(this.dialogPreference);let s=await o;return s==null?void 0:e.filter((a,l)=>s.includes(l))})}async requestInput(e,t,i,r){let{nvim:o}=this,s=this.configuration.get("coc.preferences.promptInput"),a=!ai||Wv(t,"patch-8.2.750")&&!eo;return s&&a?await this.mutex.use(async()=>{let l=new ua(o,se(i));return await l.show(e,Object.assign(this.inputPreference,ye(r,{}))),await new Promise(u=>{l.onDidFinish(c=>{setTimeout(()=>{u(c)},20)})})}):await this.mutex.use(async()=>{let l=await Yv(this.nvim,"input",[e+": ",se(i)]);return o.command("normal! :",!0),l})}async createInputBox(e,t,i){let r=new ua(this.nvim,se(t));return await r.show(e,Object.assign(this.inputPreference,ye(i,{}))),r}get inputPreference(){let e=this.configuration.get("dialog");return{rounded:!!e.rounded,maxWidth:on(e.maxWidth,80),highlight:ye(e.floatHighlight,_g),borderhighlight:ye(e.floatBorderHighlight,_g)}}get dialogPreference(){let e=this.configuration.get("dialog");return{rounded:!!e.rounded,maxWidth:on(e.maxWidth,80),maxHeight:e.maxHeight,floatHighlight:ye(e.floatHighlight,_g),floatBorderHighlight:ye(e.floatBorderHighlight,_g),pickerButtons:e.pickerButtons,pickerButtonShortcut:e.pickerButtonShortcut,confirmKey:se(e.confirmKey),shortcutHighlight:se(e.shortcutHighlight)}}}});function Vv(n){return[n.hlGroup,n.lnum,n.colStart,n.colEnd,n.combine?1:0,n.start_incl?1:0,n.end_incl?1:0]}function gZ(n,e){let t=[n.hlGroup,n.lnum,n.colStart,n.colEnd];return Fe(t,e.slice(0,4))}var ew,pZ=D(()=>{"use strict";ee();Be();ew=class{async diffHighlights(e,t,i,r,o){let s=[e,t];Array.isArray(r)&&s.push(r[0],r[1]-1);let a=await this.nvim.call("coc#highlight#get_highlights",s);if(!a||(o==null?void 0:o.isCancellationRequested))return null;i.sort((m,y)=>m.lnum-y.lnum);let l=[],u=[],c=[],d=0,h=i.length-1,g=0,f=new Map;if(a.forEach(m=>{g=Math.max(g,m[1]);let y=f.get(m[1]);y?y.push(m):f.set(m[1],[m])}),a.length>0){let m=Array.isArray(r)?r[0]:0;for(let y=m;y<=g;y++){let w=ye(f.get(y),[]),x=[];for(let C=d;C<=h;C++){let P=i[C];if(P.lnum==y)d=C+1,x.push(P);else{d=C;break}}if(x.length==0)w.length>0&&(this.checkMarkers?u.push(...w.map(C=>C[4])):l.push(y));else if(w.length==0)c.push(...x.map(C=>Vv(C)));else if(this.checkMarkers){let C=0,P=Math.min(w.length,x.length);for(;CT[4])),c.push(...x.slice(C).map(T=>Vv(T)))}else(x.length!=w.length||!x.every((C,P)=>gZ(C,w[P])))&&(l.push(y),c.push(...x.map(C=>Vv(C))))}}for(let m=d;m<=h;m++)c.push(Vv(i[m]));return{remove:l,add:c,removeMarkers:u}}async applyDiffHighlights(e,t,i,r,o){let{nvim:s}=this,{remove:a,add:l,removeMarkers:u}=r;a.length===0&&l.length===0&&u.length===0||(s.pauseNotification(),u.length&&s.call("coc#highlight#del_markers",[e,t,u],!0),a.length&&s.call("coc#highlight#clear",[e,t,a],!0),l.length&&s.call("coc#highlight#set",[e,t,l,i],!0),o?s.resumeNotification(!0,!0):await s.resumeNotification(!0))}}});function fZ(n){return n.map((e,t)=>({text:e,index:t}))}function mZ(n){return n.map(e=>typeof e=="string"?e:e.title)}var ma,jP=D(()=>{"use strict";Re();ee();Se();ma=class{constructor(e,t,i=!0){this.nvim=e;this.config=t;this.disposables=[];if(i){_.on("BufWinLeave",o=>{o==this.bufnr&&(this.dispose(),t.callback&&t.callback(-1))},null,this.disposables);let r=le(t.buttons).filter(o=>o.disabled!=!0);_.on("FloatBtnClick",(o,s)=>{o==this.bufnr&&(this.dispose(),t.callback&&t.callback(r[s].index))},null,this.disposables)}}get lines(){return this.config.content?this.config.content.split(/\r?\n/):[]}async show(e){let{nvim:t}=this,{buttons:i,kind:r,title:o}=this.config,s=Object.assign({},e);if(s.kind=r??"",s.close=this.config.closable===!0?1:0,o&&(s.title=o),e.border&&(s.borderhighlight=r?`CocNotification${r[0].toUpperCase()}${r.slice(1)}`:e.highlight),Array.isArray(i)){let l=i.filter(u=>!u.disabled).map(u=>u.text);l.length&&(s.actions=l)}let a=await t.call("coc#notify#create",[this.lines,s]);this._winid=a[0],this.bufnr=a[1]}get winid(){return this._winid}dispose(){let{winid:e}=this;e&&(this.nvim.call("coc#notify#close",[e],!0),this.nvim.redrawVim()),this.bufnr=void 0,this._winid=void 0,Y(this.disposables)}}});function bZ(n,e,t){let i=[];return n&&i.push(n),e&&i.push(e),t&&i.push(t+"%"),i.join(" ")}var hce,np,yZ=D(()=>{"use strict";Re();Ce();$();jP();hce=J("model-progress");np=class extends ma{constructor(t,i){super(t,{kind:"progress",title:i.title,closable:i.cancellable},!1);this.option=i;this._onDidFinish=new p.Emitter;this.onDidFinish=this._onDidFinish.event;this.cancelProgress=t=>{t==this.bufnr&&this.tokenSource&&this.tokenSource.cancel()};this.disposables.push(this._onDidFinish),_.on("BufWinLeave",this.cancelProgress,null,this.disposables)}async show(t){let{task:i}=this.option,r=this.tokenSource=new p.CancellationTokenSource;this.disposables.push(r);let o=0;t.disabled?hce.warn('progress window disabled by configuration "notification.disabledProgressSources"'):await super.show(t),i({report:s=>{if(!this.winid)return;let{nvim:a}=this;s.increment&&(o+=s.increment,a.call("coc#window#set_var",[this.winid,"percent",`${o}%`],!0)),s.message&&a.call("coc#window#set_var",[this.winid,"message",s.message],!0)}},r.token).then(s=>{this._onDidFinish.fire(s),this.dispose()},s=>{s&&this.nvim.echoError(s),this._onDidFinish.fire(void 0),this.dispose()})}}});var tw,vZ=D(()=>{"use strict";jP();yZ();ee();hs();aa();$();pe();ql();tw=class{constructor(e){this.dialogs=e}async _showMessage(e,t,i,r){if(!this.enableMessageDialog)return await this.showConfirm(t,i,e);if(i.length>0){let o=Ll(r);return await this.showMessagePicker(`Choose action ${o?`(${o})`:""}`,t,`Coc${e}Float`,i)}await this.createNotification(e.toLowerCase(),t,[],r)}createNotification(e,t,i,r){return new Promise((o,s)=>{let a={kind:e,content:t,buttons:fZ(i),callback:u=>{o(u)}};new ma(this.nvim,a).show(this.getNotificationPreference(r)).catch(s)})}async showMessagePicker(e,t,i,r){let o=r.map(a=>typeof a=="string"?a:a.title),s=await this.dialogs.showMenuPicker(o,{position:"center",content:t,title:e.replace(/\r?\n/," "),borderhighlight:i});return r[s]}async showConfirm(e,t,i){if(!t||t.length==0){let a=i=="Info"?"more":i=="Error"?"error":"warning";this.echoMessages(e,a);return}let o=mZ(t).map((a,l)=>`${l+1}${a}`),s=await this.nvim.callAsync("coc#util#with_callback",["confirm",[e,o.join(` +`),0,i]]);return t[s-1]}echoMessages(e,t){let i=this.configuration.get("coc.preferences.messageLevel","more");lZ(this.nvim,e,t,i)}async showNotification(e,t){await new ma(this.nvim,e).show(this.getNotificationPreference(t))}async withProgress(e,t){let i=this.configuration.get("notification");if(!e.cancellable&&i.statusLineProgress)return await this.createStatusLineProgress(e,t);let r=new np(this.nvim,{task:t,title:e.title,cancellable:e.cancellable}),o=on(i.minProgressWidth,40),s=new Promise(l=>{r.onDidFinish(l)}),a=Error().stack;return await r.show(Object.assign(this.getNotificationPreference(a,e.source),{minWidth:o})),await s}async createStatusLineProgress(e,t){let{title:i}=e,r=this.statusLine.createStatusBarItem(0,!0);r.text=se(i),r.show();let o=0,s=await t({report:a=>{a.increment&&(o+=a.increment),r.text=bZ(i,a.message,o).replace(/\r?\n/g," ")}},p.CancellationToken.None);return r.dispose(),s}get enableMessageDialog(){return this.configuration.get("coc.preferences.enableMessageDialog",!1)}getNotificationPreference(e,t){t||(t=Ll(e));let i=this.configuration.get("notification"),r=ye(i.disabledProgressSources,[]),o=Array.isArray(r)&&(r.includes("*")||r.includes(t));return{border:i.border,focusable:i.focusable,marginRight:on(i.marginRight,10),timeout:on(i.timeout,1e4),maxWidth:on(i.maxWidth,60),maxHeight:on(i.maxHeight,10),highlight:i.highlightGroup,winblend:on(i.winblend,30),disabled:o,source:t}}}});var iw,wZ=D(()=>{"use strict";iw=class{constructor(e,t,i,r,o){this.cmd=e;this.args=t;this.nvim=i;this._name=r;this.strictEnv=o;this.pid=0}async start(e,t){let{nvim:i}=this,r=[this.cmd,...this.args],[o,s]=await i.call("coc#terminal#start",[r,e,t||{},!!this.strictEnv]);this.bufnr=o,this.pid=s}onExit(e){this.exitStatus={code:e===-1?void 0:e}}get name(){return this._name||this.cmd}get processId(){return Promise.resolve(this.pid)}sendText(e,t=!0){!this.bufnr||this.nvim.call("coc#terminal#send",[this.bufnr,e,t],!0)}async show(e){let{bufnr:t,nvim:i}=this;if(!t)return!1;let[r,o,s]=await i.eval(`[bufloaded(${t}),win_getid(),win_findbuf(${t})]`);if(!r)return!1;let a=s[0];return a&&o==a||(i.pauseNotification(),a?i.call("win_gotoid",[a],!0):(i.command(`below ${t}sb`,!0),i.command("resize 8",!0),i.call("coc#util#do_autocmd",["CocTerminalOpen"],!0)),i.command("normal! G",!0),e&&i.command("wincmd p",!0),await i.resumeNotification()),!0}async hide(){let{bufnr:e,nvim:t}=this;!e||await t.eval(`coc#window#close(bufwinid(${e}))`)}dispose(){this.exitStatus||(this.exitStatus={code:void 0});let{bufnr:e,nvim:t}=this;!e||(this.bufnr=void 0,t.call("coc#terminal#close",[e],!0))}}});var rp,xZ=D(()=>{"use strict";Re();wZ();ee();Be();$();rp=class{constructor(){this._terminals=new Map;this.disposables=[];this._onDidOpenTerminal=new p.Emitter;this._onDidCloseTerminal=new p.Emitter;this.onDidCloseTerminal=this._onDidCloseTerminal.event;this.onDidOpenTerminal=this._onDidOpenTerminal.event;_.on("BufUnload",e=>{if(this._terminals.has(e)){let t=this._terminals.get(e);this._onDidCloseTerminal.fire(t),this._terminals.delete(e)}},null,this.disposables),_.on("TermExit",(e,t)=>{let i=this._terminals.get(e);i&&(i.onExit(t),i.dispose())},null,this.disposables)}get terminals(){return Array.from(this._terminals.values())}async createTerminal(e,t){let i=t.cwd,r=t.shellPath,o=t.shellArgs;r||(r=await e.getOption("shell")),i||(i=await e.call("getcwd"));let s=new iw(r,o||[],e,t.name,t.strictEnv);return await s.start(i,t.env),this._terminals.set(s.bufnr,s),this._onDidOpenTerminal.fire(s),s}async runTerminalCommand(e,t,i,r){return await e.callAsync("coc#ui#run_terminal",{cmd:t,cwd:i,keepfocus:r?1:0})}async openTerminal(e,t,i){return await e.call("coc#ui#open_terminal",{cmd:t,...$e(i)})}reset(){for(let e of this._terminals.values())e.dispose();this._terminals.clear()}dispose(){this._onDidOpenTerminal.dispose(),this._onDidCloseTerminal.dispose(),Y(this.disposables),this.reset()}}});var CZ=v((kEe,gce)=>{gce.exports={description:"Configuration file for coc.nvim",additionalProperties:!1,definitions:{floatConfig:{type:"object",properties:{border:{type:"boolean",default:!1,description:"Set to true to use borders."},rounded:{type:"boolean",default:!1,description:"Use rounded borders when border is true."},highlight:{type:"string",default:"CocFloating",description:"Background highlight group of float window."},title:{type:"string",default:"",description:"Title used by float window."},borderhighlight:{type:"string",default:"CocFloating",description:"Border highlight group of float window."},close:{type:"boolean",default:!1,description:"Set to true to draw close icon"},maxWidth:{type:"integer",description:"Maximum width of float window, include border."},maxHeight:{type:"integer",minimum:2,description:"Maximum height of float window, include border."},focusable:{type:"boolean",default:!0,description:"Enable focus by user actions (wincmds, mouse events), neovim only."},shadow:{type:"boolean",default:!1,description:"Drop shadow effect by blending with the background, neovim only."},winblend:{type:"integer",default:0,minimum:0,maximum:100,description:"Enables pseudo-transparency by set 'winblend' option of window, neovim only."}}},"languageserver.enable":{type:"boolean",description:"Enable the languageserver, restart coc.nvim required after change.",default:!0},"languageserver.filetypes":{type:"array",default:[],description:"Supported filetypes, add * in array for all filetypes.",items:{type:"string"}},"languageserver.maxRestartCount":{type:"integer",default:4,minimum:1,description:"Maximum restart count when server closed in the last 3 minutes."},"languageserver.cwd":{type:"string",default:"",description:"Working directory of languageserver, absolute path or relative to workspace folder, use workspace root by default"},"languageserver.settings":{type:"object",default:{},description:"Settings of languageserver"},"languageserver.initializationOptions":{type:"object",default:{},description:"initializationOptions passed to languageserver"},"languageserver.env":{type:"object",default:null,description:"Environment variables for child process."},"languageserver.stdioEncoding":{type:"string",default:"utf8",description:"Encoding used for stdio of child process."},"languageserver.rootPatterns":{type:"array",default:[],description:"Root patterns used to resolve rootPath from current file, default to workspace root",items:{type:"string"}},"languageserver.requireRootPattern":{type:"boolean",default:!1,description:"If true, doesn't start server when root pattern not found."},"languageserver.ignoredRootPaths":{type:"array",default:[],description:"Absolute root paths that language server should not use as rootPath, higher priority than rootPatterns.",items:{type:"string"}},"languageserver.additionalSchemes":{type:"array",default:[],description:"Additional URI schemes, default schemes including file & untitled.",items:{type:"string"}},"languageserver.revealOutputChannelOn":{type:"string",default:"never",description:"Configure message level to show the output channel buffer",enum:["info","warn","error","never"]},"languageserver.progressOnInitialization":{type:"boolean",default:!1,description:"Enable progress report on languageserver initialize."},"languageserver.trace.server":{type:"string",default:"off",enum:["off","messages","verbose"],description:"Trace level of communication between server and client"},"languageserver.trace.server.verbosity":{type:"string",default:"off",enum:["off","messages","verbose"],description:"Trace level of communication between server and client"},"languageserver.trace.server.format":{type:"string",default:"text",enum:["text","json"],description:"Text format of trace messages."},"languageserver.disableDynamicRegister":{type:"boolean",default:!1,description:"Disable dynamic registerCapability feature for this languageserver to avoid duplicate feature registration."},"languageserver.disableSnippetCompletion":{type:"boolean",default:!1,description:"Disable completion snippet feature for this languageserver, the languageserver may not respect it."},"languageserver.disabledFeatures":{type:"array",default:[],description:"Disabled features for this languageserver.",items:{type:"string",enum:["completion","configuration","workspaceFolders","diagnostics","willSave","willSaveUntil","didSaveTextDocument","fileSystemWatcher","hover","signatureHelp","definition","references","documentHighlight","documentSymbol","workspaceSymbol","codeAction","codeLens","formatting","documentFormatting","documentRangeFormatting","documentOnTypeFormatting","rename","documentLink","executeCommand","pullConfiguration","typeDefinition","implementation","declaration","color","foldingRange","selectionRange","progress","callHierarchy","linkedEditing","inlayHint","inlineValue","typeHierarchy","pullDiagnostic","fileEvents","semanticTokens"]}},"languageserver.formatterPriority":{type:"integer",default:0,description:"Priority of this languageserver's formatter."},languageServerSocket:{type:"object",required:["port","filetypes"],additionalProperties:!1,properties:{port:{type:"integer",description:"Port number of socket server"},host:{type:"string",default:"127.0.0.1",description:"Host of server"},enable:{$ref:"#/definitions/languageserver.enable"},disableSnippetCompletion:{$ref:"#/definitions/languageserver.disableSnippetCompletion"},disableDynamicRegister:{$ref:"#/definitions/languageserver.disableDynamicRegister"},disabledFeatures:{$ref:"#/definitions/languageserver.disabledFeatures"},formatterPriority:{$ref:"#/definitions/languageserver.formatterPriority"},rootPatterns:{$ref:"#/definitions/languageserver.rootPatterns"},requireRootPattern:{$ref:"#/definitions/languageserver.requireRootPattern"},ignoredRootPaths:{$ref:"#/definitions/languageserver.ignoredRootPaths"},maxRestartCount:{$ref:"#/definitions/languageserver.maxRestartCount"},filetypes:{$ref:"#/definitions/languageserver.filetypes"},additionalSchemes:{$ref:"#/definitions/languageserver.additionalSchemes"},revealOutputChannelOn:{$ref:"#/definitions/languageserver.revealOutputChannelOn"},progressOnInitialization:{$ref:"#/definitions/languageserver.progressOnInitialization"},initializationOptions:{$ref:"#/definitions/languageserver.initializationOptions"},settings:{$ref:"#/definitions/languageserver.settings"},stdioEncoding:{$ref:"#/definitions/languageserver.stdioEncoding"},"trace.server":{$ref:"#/definitions/languageserver.trace.server"},"trace.server.verbosity":{$ref:"#/definitions/languageserver.trace.server.verbosity"},"trace.server.format":{$ref:"#/definitions/languageserver.trace.server.format"}}},languageServerModule:{type:"object",required:["module","filetypes"],additionalProperties:!1,properties:{module:{type:"string",default:"",description:"Absolute path of Javascript file, should works in IPC mode"},args:{type:"array",default:[],description:"Extra arguments of module",items:{type:"string"}},runtime:{type:"string",default:"",description:"Absolute path of node runtime."},execArgv:{type:"array",default:[],description:'ARGV passed to node when using module, normally used for debugging, ex: ["--nolazy", "--inspect-brk=6045"]',items:{type:"string"}},transport:{type:"string",default:"ipc",description:"Transport kind used by server, could be 'ipc', 'stdio', 'socket' and 'pipe'",enum:["ipc","stdio","socket","pipe"]},transportPort:{type:"integer",description:"Port number used when transport is 'socket'"},enable:{$ref:"#/definitions/languageserver.enable"},disableSnippetCompletion:{$ref:"#/definitions/languageserver.disableSnippetCompletion"},disableDynamicRegister:{$ref:"#/definitions/languageserver.disableDynamicRegister"},disabledFeatures:{$ref:"#/definitions/languageserver.disabledFeatures"},formatterPriority:{$ref:"#/definitions/languageserver.formatterPriority"},rootPatterns:{$ref:"#/definitions/languageserver.rootPatterns"},requireRootPattern:{$ref:"#/definitions/languageserver.requireRootPattern"},ignoredRootPaths:{$ref:"#/definitions/languageserver.ignoredRootPaths"},maxRestartCount:{$ref:"#/definitions/languageserver.maxRestartCount"},filetypes:{$ref:"#/definitions/languageserver.filetypes"},additionalSchemes:{$ref:"#/definitions/languageserver.additionalSchemes"},revealOutputChannelOn:{$ref:"#/definitions/languageserver.revealOutputChannelOn"},progressOnInitialization:{$ref:"#/definitions/languageserver.progressOnInitialization"},initializationOptions:{$ref:"#/definitions/languageserver.initializationOptions"},settings:{$ref:"#/definitions/languageserver.settings"},stdioEncoding:{$ref:"#/definitions/languageserver.stdioEncoding"},"trace.server":{$ref:"#/definitions/languageserver.trace.server"},"trace.server.verbosity":{$ref:"#/definitions/languageserver.trace.server.verbosity"},"trace.server.format":{$ref:"#/definitions/languageserver.trace.server.format"}}},languageServerCommand:{type:"object",required:["command","filetypes"],additionalProperties:!1,properties:{command:{type:"string",default:"",description:"Executable in $PATH to start languageserver, should not used with module"},args:{type:"array",default:[],description:"Arguments of command",items:{type:"string"}},detached:{type:"boolean",default:!1,description:"Detach the languageserver process"},shell:{type:"boolean",default:!1,description:"Use shell for process"},enable:{$ref:"#/definitions/languageserver.enable"},disableSnippetCompletion:{$ref:"#/definitions/languageserver.disableSnippetCompletion"},disableDynamicRegister:{$ref:"#/definitions/languageserver.disableDynamicRegister"},disabledFeatures:{$ref:"#/definitions/languageserver.disabledFeatures"},formatterPriority:{$ref:"#/definitions/languageserver.formatterPriority"},rootPatterns:{$ref:"#/definitions/languageserver.rootPatterns"},requireRootPattern:{$ref:"#/definitions/languageserver.requireRootPattern"},ignoredRootPaths:{$ref:"#/definitions/languageserver.ignoredRootPaths"},maxRestartCount:{$ref:"#/definitions/languageserver.maxRestartCount"},filetypes:{$ref:"#/definitions/languageserver.filetypes"},additionalSchemes:{$ref:"#/definitions/languageserver.additionalSchemes"},revealOutputChannelOn:{$ref:"#/definitions/languageserver.revealOutputChannelOn"},progressOnInitialization:{$ref:"#/definitions/languageserver.progressOnInitialization"},initializationOptions:{$ref:"#/definitions/languageserver.initializationOptions"},settings:{$ref:"#/definitions/languageserver.settings"},stdioEncoding:{$ref:"#/definitions/languageserver.stdioEncoding"},"trace.server":{$ref:"#/definitions/languageserver.trace.server"},"trace.server.verbosity":{$ref:"#/definitions/languageserver.trace.server.verbosity"},"trace.server.format":{$ref:"#/definitions/languageserver.trace.server.format"}}}},properties:{"callHierarchy.enableTooltip":{type:"boolean",scope:"application",default:!0,description:"Enable tooltip to show relative filepath of call hierarchy."},"callHierarchy.openCommand":{type:"string",scope:"application",default:"edit",description:"Open command for callHierarchy tree view."},"callHierarchy.splitCommand":{type:"string",scope:"application",default:"botright 30vs",description:"Window split command used by callHierarchy tree view."},"coc.preferences.rootPatterns":{type:["array","null"],default:null,scope:"application",description:"Root patterns to resolve workspaceFolder from parent folders of opened files, resolved from up to down.",deprecationMessage:"Use 'workspace.rootPatterns' instead.",items:{type:"string"}},"coc.preferences.bracketEnterImprove":{type:"boolean",scope:"language-overridable",description:"Improve enter inside bracket `<> {} [] ()` by add new empty line below and place cursor to it. Works with `coc#on_enter()`",default:!0},"coc.preferences.currentFunctionSymbolAutoUpdate":{type:"boolean",scope:"language-overridable",description:"Automatically update the value of b:coc_current_function on CursorHold event",default:!1},"coc.preferences.enableLinkedEditing":{type:"boolean",scope:"language-overridable",default:!1,description:"Enable linked editing support."},"coc.preferences.enableMarkdown":{type:"boolean",scope:"application",description:"Tell the language server that markdown text format is supported, note that markdown text may not rendered as expected.",default:!0},"coc.preferences.enableMessageDialog":{type:"boolean",scope:"application",default:!1,description:"Enable messages shown in notification dialog."},"coc.preferences.excludeImageLinksInMarkdownDocument":{type:"boolean",description:"Exclude image links from markdown text in float window.",scope:"application",default:!0},"coc.preferences.enableGFMBreaksInMarkdownDocument":{type:"boolean",description:"Exclude GFM breaks in markdown document.",scope:"application",default:!0},"coc.preferences.extensionUpdateCheck":{type:"string",scope:"application",default:"never",description:"Interval for check extension update, could be daily, weekly, never",enum:["daily","weekly","never"]},"coc.preferences.floatActions":{type:"boolean",scope:"application",description:"Set to false to disable float/popup support for actions menu.",default:!0},"coc.preferences.formatOnSave":{type:"boolean",description:"Set to true to enable formatting on save.",scope:"language-overridable",default:!1},"coc.preferences.formatOnSaveTimeout":{type:"integer",scope:"language-overridable",description:"How long before the format command run on save times out.",default:500,minimum:200,maximum:5e3},"coc.preferences.formatOnSaveFiletypes":{type:["null","array"],scope:"resource",default:null,description:"Filetypes that should run format on save.",deprecationMessage:"Use coc.preferences.formatOnSave as language override configuration instead, see :h coc-configuration-scope",items:{type:"string"}},"coc.preferences.formatOnType":{type:"boolean",description:"Set to true to enable formatting on typing.",scope:"language-overridable",default:!1},"coc.preferences.formatOnTypeFiletypes":{type:["null","array"],default:null,scope:"resource",description:"Filetypes that should run format on typing, only works when `coc.preferences.formatOnType` is `true`",deprecationMessage:"Use coc.preferences.formatOnType as language override configuration instead, see :h coc-configuration-scope",items:{type:"string"}},"coc.preferences.jumpCommand":{anyOf:[{type:"string",enum:["edit","split","vsplit","tabe","drop","tab drop","pedit"]},{type:"string",minimum:1}],scope:"application",description:"Command used for location jump, like goto definition, goto references etc. Can be also a custom command that gives file as an argument.",default:"edit"},"coc.preferences.maxFileSize":{type:"string",scope:"application",default:"10MB",description:"Maximum file size in bytes that coc.nvim should handle, default '10MB'"},"coc.preferences.messageLevel":{type:"string",scope:"application",description:"Message level for filter echoed messages, could be 'more', 'warning' and 'error'",default:"more",enum:["more","warning","error"]},"coc.preferences.promptInput":{type:"boolean",description:"Use prompt buffer in float window for user input.",scope:"application",default:!0},"coc.preferences.renameFillCurrent":{type:"boolean",scope:"application",default:!0,description:"Disable to stop Refactor-Rename float/popup window from populating with old name in the New Name field."},"coc.preferences.silentAutoupdate":{type:"boolean",description:"Not open split window with update status when performing auto update.",scope:"application",default:!0},"coc.preferences.useQuickfixForLocations":{type:"boolean",scope:"application",description:`Use vim's quickfix list for jump locations, + need restart on change.`,default:!1},"coc.preferences.watchmanPath":{type:"string",scope:"application",description:"executable path for https://facebook.github.io/watchman/, detected from $PATH by default",default:null},"coc.preferences.willSaveHandlerTimeout":{type:"integer",scope:"application",default:500,minimum:200,maximum:5e3,description:"Will save handler timeout"},"coc.source.around.disableSyntaxes":{type:"array",default:[],scope:"application",items:{type:"string"}},"coc.source.around.enable":{type:"boolean",scope:"application",default:!0},"coc.source.around.priority":{type:"integer",scope:"application",default:1},"coc.source.around.shortcut":{type:"string",scope:"application",default:"A"},"coc.source.buffer.disableSyntaxes":{type:"array",default:[],scope:"application",items:{type:"string"}},"coc.source.buffer.enable":{type:"boolean",scope:"application",default:!0},"coc.source.buffer.ignoreGitignore":{type:"boolean",default:!0,scope:"application",description:"Ignore git ignored files for buffer words"},"coc.source.buffer.priority":{type:"integer",scope:"application",default:1},"coc.source.buffer.shortcut":{type:"string",scope:"application",default:"B"},"coc.source.file.disableSyntaxes":{type:"array",default:[],scope:"application",items:{type:"string"}},"coc.source.file.enable":{type:"boolean",scope:"application",default:!0},"coc.source.file.ignoreHidden":{type:"boolean",scope:"application",default:!0,description:"Ignore completion for hidden files"},"coc.source.file.ignorePatterns":{type:"array",scope:"application",default:[],description:"Ignore patterns of matcher",items:{type:"string"}},"coc.source.file.priority":{type:"integer",scope:"application",default:10},"coc.source.file.shortcut":{type:"string",scope:"application",default:"F"},"coc.source.file.triggerCharacters":{type:"array",default:["/","\\"],scope:"application",items:{type:"string"}},"coc.source.file.trimSameExts":{type:"array",scope:"application",default:[".ts",".js"],description:"Trim same extension on file completion",items:{type:"string"}},"codeLens.enable":{type:"boolean",scope:"language-overridable",description:"Enable codeLens feature, require neovim with set virtual text feature.",default:!1},"codeLens.position":{type:"string",scope:"resource",enum:["top","eol","right_align"],description:"Position of codeLens, requires nvim >= 0.6.0",default:"top"},"codeLens.separator":{type:"string",scope:"resource",description:"Separator text for codeLens in virtual text",default:""},"codeLens.subseparator":{type:"string",scope:"resource",description:"Subseparator between codeLenses in virtual text",default:" | "},"colors.enable":{type:"boolean",scope:"language-overridable",description:"Enable colors highlight feature, for termainal vim, 'termguicolors' option should be enabled and the termainal support gui colors.",default:!1},"colors.filetypes":{type:["array","null"],default:null,scope:"resource",deprecationMessage:"Use colors.enable as language override configuration instead, see :h coc-configuration-scope",description:'Filetypes that should be enabled for colors highlight feature, use "*" for all filetypes.',items:{type:"string"}},"colors.highlightPriority":{type:"integer",scope:"application",description:"Priority for colors highlights, works on vim8 and neovim >= 0.6.0",default:1e3,maximum:4096},"cursors.cancelKey":{type:"string",scope:"application",default:"",description:"Key used for cancel cursors session."},"cursors.nextKey":{type:"string",scope:"application",default:"",description:"Key used for jump to next cursors position."},"cursors.previousKey":{type:"string",scope:"application",default:"",description:"Key used for jump to previous cursors position."},"cursors.wrapscan":{type:"boolean",scope:"application",default:!0,description:"Searches wrap around the first or last cursors range."},"diagnostic.autoRefresh":{type:"boolean",scope:"language-overridable",description:"Enable automatically refresh diagnostics, use diagnosticRefresh action when it's disabled.",default:!0},"diagnostic.checkCurrentLine":{type:"boolean",scope:"language-overridable",description:"When enabled, show all diagnostics of current line if there are none at the current position.",default:!1},"diagnostic.displayByAle":{type:"boolean",scope:"language-overridable",description:"Use Ale for display diagnostics in vim, will disable coc for display diagnostics, restart required on change.",default:!1},"diagnostic.enable":{type:"boolean",scope:"language-overridable",description:"Set to false to disable diagnostic display",default:!0},"diagnostic.enableHighlightLineNumber":{type:"boolean",scope:"application",default:!0,description:"Enable highlighting line numbers for diagnostics, only works with neovim."},"diagnostic.enableMessage":{type:"string",scope:"application",default:"always",description:"When to enable show messages of diagnostics.",enum:["always","jump","never"]},"diagnostic.enableSign":{type:"boolean",scope:"language-overridable",default:!0,description:"Enable signs for diagnostics."},"diagnostic.errorSign":{type:"string",scope:"application",description:"Text of error sign",default:">>"},"diagnostic.filetypeMap":{type:"object",scope:"application",description:'A map between buffer filetype and the filetype assigned to diagnostics. To syntax highlight diagnostics with their parent buffer type use `"default": "bufferType"`',default:{}},"diagnostic.floatConfig":{type:"object",scope:"application",description:"Configure float window style of diagnostic message.",allOf:[{$ref:"#/definitions/floatConfig"}],additionalProperties:!1,properties:{border:{},rounded:{},highlight:{},borderhighlight:{},title:{},close:{},maxHeight:{},maxWidth:{},winblend:{},focusable:{},shadow:{}}},"diagnostic.format":{type:"string",scope:"language-overridable",description:"Define the diagnostic format that shown in float window or echoed, available parts: source, code, severity, message",default:"%message (%source%code)"},"diagnostic.highlightLimit":{type:"integer",scope:"language-overridable",description:"Limit count for highlighted diagnostics, too many diagnostic highlights could make vim stop responding",default:1e3},"diagnostic.highlightPriority":{type:"integer",scope:"language-overridable",description:"Priority for diagnostic highlights, works on vim8 and neovim >= 0.6.0",default:4096,maximum:4096,minimum:110},"diagnostic.hintSign":{type:"string",scope:"application",description:"Text of hint sign",default:">>"},"diagnostic.infoSign":{type:"string",scope:"application",description:"Text of info sign",default:">>"},"diagnostic.level":{type:"string",scope:"resource",description:"Used for filter diagnostics by diagnostic severity.",default:"hint",enum:["hint","information","warning","error"]},"diagnostic.locationlistLevel":{type:["string","null"],scope:"language-overridable",description:"Filter diagnostics in locationlist.",default:null,enum:["hint","information","warning","error"]},"diagnostic.locationlistUpdate":{type:"boolean",scope:"language-overridable",description:"Update locationlist on diagnostics change, only works with locationlist opened by :CocDiagnostics command and first window of associated buffer.",default:!0},"diagnostic.messageDelay":{type:"integer",scope:"application",description:"How long to wait (in milliseconds) before displaying the diagnostic message with echo or float",default:200},"diagnostic.messageLevel":{type:["string","null"],scope:"language-overridable",description:"Filter diagnostic message in float window/popup.",default:null,enum:["hint","information","warning","error"]},"diagnostic.messageTarget":{type:"string",scope:"language-overridable",description:"Diagnostic message target.",default:"float",enum:["echo","float"]},"diagnostic.refreshOnInsertMode":{type:"boolean",scope:"language-overridable",description:"Enable diagnostic refresh on insert mode, default false.",default:!1},"diagnostic.separateRelatedInformationAsDiagnostics":{type:"boolean",default:!1,scope:"application",description:"Separate related information as diagnostics."},"diagnostic.showDeprecated":{type:"boolean",default:!0,scope:"language-overridable",description:"Show diagnostics with deprecated tag."},"diagnostic.showUnused":{type:"boolean",default:!0,scope:"language-overridable",description:"Show diagnostics with unused tag, affects highlight, sign, virtual text, message"},"diagnostic.signLevel":{type:["string","null"],scope:"language-overridable",description:"Filter diagnostics displayed in signcolumn.",default:null,enum:["hint","information","warning","error"]},"diagnostic.signPriority":{type:"integer",scope:"resource",description:"Priority of diagnostic signs, default to 10",default:10},"diagnostic.virtualText":{type:"boolean",scope:"language-overridable",description:"Use virtual text to display diagnostics, requires neovim >= 0.5.0 or vim >= 9.0.0067.",default:!1},"diagnostic.virtualTextAlign":{type:"string",scope:"language-overridable",description:"Position of virtual text, default 'after'. Vim9 only",default:"after",enum:["after","right","below"]},"diagnostic.virtualTextCurrentLineOnly":{type:"boolean",scope:"language-overridable",description:"Only show virtualText diagnostic on current cursor line",default:!0},"diagnostic.virtualTextFormat":{type:"string",scope:"language-overridable",description:"Define the virtual text diagnostic format, available parts: source, code, severity, message",default:"%message"},"diagnostic.virtualTextLevel":{type:["string","null"],scope:"language-overridable",description:"Filter diagnostic message in virtual text by level",default:null,enum:["hint","information","warning","error"]},"diagnostic.virtualTextLimitInOneLine":{type:"integer",scope:"language-overridable",minimum:1,description:"The maximum number of diagnostic messages to disaply in one line",default:999},"diagnostic.virtualTextLineSeparator":{type:"string",scope:"language-overridable",description:"The text that will mark a line end from the diagnostic message",default:" \\ "},"diagnostic.virtualTextLines":{type:"integer",scope:"language-overridable",description:"The number of non empty lines from a diagnostic to display",default:3},"diagnostic.virtualTextPrefix":{type:"string",scope:"language-overridable",description:"The prefix added virtual text diagnostics",default:" "},"diagnostic.virtualTextWinCol":{type:["integer","null"],scope:"language-overridable",description:"Window column number to align virtual text, neovim only.",default:null},"diagnostic.warningSign":{type:"string",scope:"application",description:"Text of warning sign",default:"\u26A0"},"dialog.confirmKey":{type:"string",default:"",scope:"application",description:"Confirm key for confirm selection used by menu and picker, you can always use to cancel."},"dialog.floatBorderHighlight":{type:["string","null"],default:null,scope:"application",description:"Highlight group for border of dialog window/popup, default to 'CocFloating'"},"dialog.floatHighlight":{type:["string","null"],default:null,scope:"application",description:"Highlight group for dialog window/popup, default to 'CocFloating'"},"dialog.maxHeight":{type:"integer",default:30,scope:"application",description:"Maximum height of dialog window."},"dialog.maxWidth":{type:"integer",default:80,scope:"application",description:"Maximum width of dialog window."},"dialog.pickerButtonShortcut":{type:"boolean",default:!0,scope:"application",description:"Show shortcut in buttons of picker dialog window/popup, used when dialog.pickerButtons is true."},"dialog.pickerButtons":{type:"boolean",default:!0,scope:"application",description:"Show buttons for picker dialog window/popup."},"dialog.rounded":{type:"boolean",default:!0,scope:"application",description:"use rounded border for dialog window."},"dialog.shortcutHighlight":{type:"string",default:"MoreMsg",scope:"application",description:"Highlight group for shortcut character in menu dialog, default to 'MoreMsg'"},"documentHighlight.priority":{type:"integer",default:-1,scope:"resource",description:"Match priority used by document highlight, see ':h matchadd'"},"documentHighlight.timeout":{type:"integer",default:300,minimum:200,maximum:5e3,scope:"resource",description:"Timeout for document highlight, in milliseconds."},"floatFactory.floatConfig":{type:"object",scope:"application",description:"Configure default style float window/popup created by float factory (created around cursor and automatically closed)",allOf:[{$ref:"#/definitions/floatConfig"}],additionalProperties:!1,properties:{border:{},rounded:{},highlight:{},borderhighlight:{},title:{},close:{},maxWidth:{},maxHeight:{},winblend:{},focusable:{},shadow:{}}},"hover.autoHide":{type:"boolean",scope:"application",default:!0,description:"Automatically hide hover float window on CursorMove or InsertEnter."},"hover.floatConfig":{type:"object",scope:"application",description:"Configure float window style of hover documents.",allOf:[{$ref:"#/definitions/floatConfig"}],additionalProperties:!1,properties:{border:{},rounded:{},highlight:{},borderhighlight:{},title:{},close:{},maxHeight:{},maxWidth:{},winblend:{},focusable:{},shadow:{}}},"hover.previewMaxHeight":{type:"integer",scope:"resource",default:12,description:"Max height of preview window for hover."},"hover.target":{type:"string",default:"float",scope:"resource",description:"Target to show hover information, default is floating window when possible.",enum:["preview","echo","float"]},"http.proxy":{type:"string",default:"",pattern:"^https?://([^:]*(:[^@]*)?@)?([^:]+|\\[[:0-9a-fA-F]+\\])(:\\d+)?/?$|^$",description:"The proxy setting to use. If not set, will be inherited from the `http_proxy` and `https_proxy` environment variables.",scope:"application"},"http.proxyAuthorization":{type:["null","string"],description:"The value to send as the `Proxy-Authorization` header for every network request.",default:null,scope:"application"},"http.proxyCA":{type:"string",description:"CA (file) to use as Certificate Authority",default:null,scope:"application"},"http.proxyStrictSSL":{type:"boolean",description:"Controls whether the proxy server certificate should be verified against the list of supplied CAs",default:!0,scope:"application"},"inlayHint.enable":{type:"boolean",default:!0,scope:"language-overridable",description:"Enable inlay hint support"},"inlayHint.enableParameter":{type:"boolean",scope:"language-overridable",default:!0,description:"Enable inlay hints for parameters."},"inlayHint.display":{type:"boolean",scope:"language-overridable",default:!0,description:"Display inlay hints."},"inlayHint.filetypes":{type:["array","null"],scope:"application",description:"Filetypes that enable inlayHint, all filetypes are enabled by default",deprecationMessage:"Use inlayHint.enable with language scope instead, see :h coc-configuration-scope",default:null,items:{type:"string"}},"inlayHint.parameterSeparator":{type:"string",scope:"language-overridable",default:"",description:"Separator for parameter inlay hint, neovim only."},"inlayHint.refreshOnInsertMode":{type:"boolean",default:!1,scope:"language-overridable",description:"Refresh inlayHints on insert mode."},"inlayHint.subSeparator":{type:"string",scope:"language-overridable",default:" ",description:"Separator for chained inlay hints, neovim only."},"inlayHint.typeSeparator":{type:"string",scope:"language-overridable",default:"",description:"Separator for type inlay hint, neovim only."},"links.enable":{type:"boolean",scope:"language-overridable",description:"Enable document links",default:!0},"links.tooltip":{type:"boolean",scope:"application",description:"Show tooltip of link under cursor on CursorHold.",default:!1},"links.highlight":{type:"boolean",scope:"application",description:"Use CocLink highlight group to highlight links",default:!1},"list.floatPreview":{type:"boolean",default:!1,scope:"application",description:"Enable preview with float window/popup, default: `false`"},"list.alignColumns":{type:"boolean",default:!1,scope:"application",description:"Whether to align lists in columns, default: `false`"},"list.extendedSearchMode":{type:"boolean",scope:"application",default:!0,description:"Enable extended search mode which allows multiple search patterns delimited by spaces."},"list.height":{type:"integer",scope:"application",default:10,description:"Height of split list window."},"list.indicator":{type:"string",default:">",scope:"application",description:"The character used as first character in prompt line."},"list.insertMappings":{type:"object",scope:"application",default:{},description:"Custom keymappings on insert mode."},"list.interactiveDebounceTime":{type:"integer",default:100,scope:"application",description:"Debounce time for input change on interactive mode."},"list.limitLines":{type:["number","null"],scope:"application",default:null,description:"Limit lines for list buffer."},"list.maxPreviewHeight":{type:"integer",scope:"application",default:12,description:"Max height for preview window of list."},"list.menuAction":{type:"boolean",default:!1,scope:"application",description:"Use menu picker instead of confirm() for choose action."},"list.nextKeymap":{type:"string",scope:"application",default:"",description:"Key used for select next line on insert mode."},"list.normalMappings":{type:"object",scope:"application",default:{},description:"Custom keymappings on normal mode."},"list.previewHighlightGroup":{type:"string",scope:"application",default:"Search",description:"Highlight group used for highlight the range in preview window."},"list.previewSplitRight":{type:"boolean",scope:"application",default:!1,description:"Use vsplit for preview window."},"list.previewToplineOffset":{type:"integer",scope:"application",default:3,description:"Topline offset for list previews"},"list.previewToplineStyle":{type:"string",scope:"application",default:"offset",description:"Topline style for list previews",enum:["offset","middle"]},"list.previousKeymap":{type:"string",scope:"application",default:"",description:"Key used for select previous line on insert mode."},"list.selectedSignText":{type:"string",scope:"application",default:"*",description:"Sign text for selected lines."},"list.signOffset":{type:"integer",scope:"application",default:900,description:"Sign offset of list, should be different from other plugins."},"list.smartCase":{type:"boolean",default:!1,scope:"application",description:"Use smartcase match for fuzzy match and strict match, --ignore-case will be ignored, may not affect interactive list."},"list.source.diagnostics.includeCode":{type:"boolean",scope:"application",description:"Whether to show the diagnostic code in the list.",default:!0},"list.source.diagnostics.pathFormat":{type:"string",scope:"application",description:"Decide how the filepath is shown in the list.",enum:["full","short","filename","hidden"],default:"full"},"list.source.outline.ctagsFiletypes":{type:"array",scope:"application",default:[],description:"Filetypes that should use ctags for outline instead of language server.",items:{type:"string"}},"list.source.symbols.excludes":{type:"array",scope:"application",default:[],description:"Patterns of minimatch for filepath to exclude from symbols list.",items:{type:"string"}},"list.statusLineSegments":{type:["array","null"],scope:"application",default:['%#CocListMode#-- %{coc#list#status("mode")} --%*','%{coc#list#status("loading")}','%{coc#list#status("args")}','(%L/%{coc#list#status("total")})',"%=",'%#CocListPath# %{coc#list#status("cwd")} %l/%L%*'],items:{types:"string"},description:"An array of statusline segments that will be used to draw the status line for list windows."},"notification.statusLineProgress":{type:"boolean",default:!0,scope:"application",description:"Show progress notification in status line, instead of float window/popup."},"notification.border":{type:"boolean",default:!0,scope:"application",description:"Enable rounded border for notification windows."},"notification.disabledProgressSources":{type:"array",default:[],scope:"application",description:"Sources that should be disabled for message progress, use * to disable all message only progresses",items:{type:"string"}},"notification.focusable":{type:"boolean",default:!0,scope:"application",description:"Enable focus by user actions (wincmds, mouse events), neovim only."},"notification.highlightGroup":{type:"string",default:"Normal",scope:"application",description:"Highlight group of notification dialog."},"notification.marginRight":{type:"integer",default:10,scope:"application",description:"Margin right to the right of editor window."},"notification.maxHeight":{type:"integer",default:10,scope:"application",description:"Maximum content height of notification dialog."},"notification.maxWidth":{type:"integer",default:60,scope:"application",description:"Maximum content width of notification dialog."},"notification.minProgressWidth":{type:"integer",default:30,scope:"application",description:"Minimal with of progress notification."},"notification.timeout":{type:"integer",default:1e4,scope:"application",description:"Timeout for auto close notifications, in milliseconds."},"notification.winblend":{type:"integer",default:30,minimum:0,maximum:100,scope:"application",description:"Winblend option of notification window, neovim only."},"npm.binPath":{type:"string",scope:"application",default:"npm",description:"Command or absolute path to npm or yarn."},"outline.autoPreview":{type:"boolean",scope:"application",default:!1,description:"Enable auto preview on cursor move."},"outline.autoWidth":{type:"boolean",scope:"application",default:!0,description:"Automatically increase window width to avoid wrapped lines."},"outline.checkBufferSwitch":{type:"boolean",scope:"application",default:!0,description:"Recreate outline view after user changed to another buffer on current tab."},"outline.codeActionKinds":{type:"array",scope:"application",default:["","quickfix","refactor"],description:"Filter code actions in actions menu by kinds.",items:{type:"string",enum:["","quickfix","refactor","source"]}},"outline.detailAsDescription":{type:"boolean",scope:"application",default:!0,description:"Show detail as description aside with label, when false detail will be shown in tooltip on cursor hold."},"outline.expandLevel":{type:"integer",scope:"application",default:1,description:"Expand level of tree nodes."},"outline.followCursor":{type:"boolean",scope:"application",default:!0,description:"Reveal item in outline tree on cursor hold."},"outline.keepWindow":{type:"boolean",scope:"application",default:!1,description:"Jump back to original window after outline is shown."},"outline.previewBorder":{type:"boolean",scope:"application",default:!0,description:"Use border for preview window."},"outline.previewBorderHighlightGroup":{type:"string",scope:"application",default:"Normal",description:"Border highlight group of preview window."},"outline.previewBorderRounded":{type:"boolean",scope:"application",default:!1,description:"Use rounded border for preview window."},"outline.previewHighlightGroup":{type:"string",scope:"application",default:"Normal",description:"Highlight group of preview window."},"outline.previewMaxWidth":{type:"integer",scope:"application",default:80,description:"Max width of preview window."},"outline.previewWinblend":{type:"integer",scope:"application",default:0,minimum:0,maximum:100,description:"Enables pseudo-transparency by set 'winblend' option of window, neovim only."},"outline.showLineNumber":{type:"boolean",scope:"application",default:!0,description:"Show line number of symbols."},"outline.sortBy":{type:"string",scope:"application",default:"category",description:"Sort method for symbols.",enum:["position","name","category"]},"outline.splitCommand":{type:"string",scope:"application",default:"botright 30vs",description:"Window split command used by outline."},"outline.switchSortKey":{type:"string",scope:"application",default:"",description:"The key used to switch sort method for symbols provider of current tree view."},"outline.togglePreviewKey":{type:"string",scope:"application",default:"p",description:"The key used to toggle auto preview feature."},"pullDiagnostic.ignored":{type:"array",default:[],scope:"application",description:"Minimatch patterns to match full filepath that should be ignored for pullDiagnostic.",items:{type:"string"}},"pullDiagnostic.onChange":{type:"boolean",default:!0,scope:"language-overridable",description:"Whether to pull for diagnostics on document change."},"pullDiagnostic.onSave":{type:"boolean",default:!1,scope:"language-overridable",description:"Whether to pull for diagnostics on document save."},"pullDiagnostic.workspace":{type:"boolean",default:!0,scope:"application",description:"Whether to pull for workspace diagnostics when possible."},"refactor.afterContext":{type:"integer",scope:"application",default:3,description:"Print num lines of trailing context after each match."},"refactor.beforeContext":{type:"integer",scope:"application",default:3,description:"Print num lines of leading context before each match."},"refactor.openCommand":{type:"string",scope:"application",description:"Open command for refactor window.",default:"vsplit"},"refactor.saveToFile":{type:"boolean",scope:"application",description:"Save changed buffer to file when write refactor buffer with ':noa wa' command.",default:!0},"refactor.showMenu":{type:"string",scope:"application",default:"",description:"Refactor buffer local mapping to bring up menu for this chunk."},"semanticTokens.combinedModifiers":{type:"array",scope:"language-overridable",description:"Semantic token modifiers that should have highlight combined with syntax highlights.",default:["deprecated"],items:{type:"string"}},"semanticTokens.enable":{type:"boolean",default:!1,scope:"language-overridable",description:"Enable semantic tokens support"},"semanticTokens.filetypes":{type:["array","null"],scope:"resource",description:'Filetypes that enable semantic tokens highlighting or ["*"] for any filetype',deprecationMessage:"Use semanticTokens.enable configuration with language scope instead, see :h coc-configuration-scope",default:null,items:{type:"string"}},"semanticTokens.highlightPriority":{type:"integer",scope:"language-overridable",description:"Priority for semantic tokens highlight.",default:2048,maximum:4096},"semanticTokens.incrementTypes":{type:"array",scope:"language-overridable",description:"Semantic token types that should increase highlight when insert at the start and end position of token.",default:["variable","string","parameter"],items:{type:"string"}},"signature.enable":{type:"boolean",scope:"language-overridable",description:"Enable show signature help when trigger character typed.",default:!0},"signature.floatConfig":{type:"object",scope:"application",description:"Configure float window style of signature documents.",allOf:[{$ref:"#/definitions/floatConfig"}],additionalProperties:!1,properties:{border:{},rounded:{},highlight:{},borderhighlight:{},title:{},close:{},maxHeight:{},maxWidth:{},winblend:{},focusable:{},shadow:{}}},"signature.hideOnTextChange":{type:"boolean",scope:"language-overridable",description:"Hide signature float window when text changed on insert mode.",default:!1},"signature.preferShownAbove":{type:"boolean",scope:"application",description:"Show signature help float window above cursor when possible, require restart service on change.",default:!0},"signature.target":{type:"string",scope:"language-overridable",description:"Target of signature help, use float when possible by default.",default:"float",enum:["float","echo"]},"signature.triggerSignatureWait":{type:"integer",scope:"language-overridable",default:500,minimum:200,maximum:1e3,description:"Timeout for trigger signature help, in milliseconds."},"snippet.highlight":{type:"boolean",scope:"resource",description:"Use highlight group 'CocSnippetVisual' to highlight placeholders with same index of current one.",default:!1},"snippet.nextPlaceholderOnDelete":{type:"boolean",scope:"resource",description:"Automatically jump to the next placeholder when the current one is completely deleted.",default:!1},"snippet.statusText":{type:"string",scope:"application",default:"SNIP",description:"Text shown in statusline to indicate snippet session is activated."},"suggest.acceptSuggestionOnCommitCharacter":{type:"boolean",default:!1,scope:"language-overridable",description:"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character."},"suggest.asciiCharactersOnly":{type:"boolean",description:"Trigger suggest with ASCII characters only",scope:"language-overridable",default:!1},"suggest.asciiMatch":{type:"boolean",description:"Convert unicode characters to ascii for match",scope:"language-overridable",default:!0},"suggest.autoTrigger":{type:"string",scope:"language-overridable",default:"always",description:"How should completion be triggered",enum:["always","trigger","none"]},"suggest.completionItemKindLabels":{type:"object",default:{},scope:"application",description:"Set custom labels to completion items' kinds.",properties:{text:{type:"string"},method:{type:"string"},function:{type:"string"},constructor:{type:"string"},field:{type:"string"},variable:{type:"string"},class:{type:"string"},interface:{type:"string"},module:{type:"string"},property:{type:"string"},unit:{type:"string"},value:{type:"string"},enum:{type:"string"},keyword:{type:"string"},snippet:{type:"string"},color:{type:"string"},file:{type:"string"},reference:{type:"string"},folder:{type:"string"},enumMember:{type:"string"},constant:{type:"string"},struct:{type:"string"},event:{type:"string"},operator:{type:"string"},typeParameter:{type:"string"},default:{type:"string"}},additionalProperties:!1},"suggest.defaultSortMethod":{type:"string",description:"Default sorting behavior for suggested completion items.",default:"length",scope:"language-overridable",enum:["length","alphabetical","none"]},"suggest.detailField":{type:"string",scope:"application",default:"preview",description:"Where to show the detail text of CompleteItem from LS.",enum:["abbr","preview"]},"suggest.detailMaxLength":{type:"integer",scope:"application",description:"Max length of detail that should be shown in popup menu.",deprecationMessage:"Use suggest.labelMaxLength instead.",default:100},"suggest.enableFloat":{type:"boolean",scope:"language-overridable",description:"Enable float window with documentation aside with popupmenu.",default:!0},"suggest.enablePreselect":{type:"boolean",scope:"application",description:"Enable preselect feature of LSP, works when suggest.noselect is false.",default:!0},"suggest.filterGraceful":{type:"boolean",description:"Controls whether filtering and sorting suggestions accounts for small typos.",scope:"language-overridable",default:!0},"suggest.filterOnBackspace":{type:"boolean",scope:"application",description:"Filter complete items on backspace.",default:!0},"suggest.floatConfig":{type:"object",scope:"application",description:"Configure style of popup menu and documentation window of completion.",allOf:[{$ref:"#/definitions/floatConfig"}],additionalProperties:!1,properties:{border:{},rounded:{},highlight:{},borderhighlight:{},maxWidth:{},winblend:{},shadow:{}}},"suggest.formatItems":{type:"array",scope:"application",items:{enum:["abbr","menu","kind","shortcut"]},contains:{enum:["abbr"]},uniqueItems:!0,description:"Items shown in popup menu in order.",default:["abbr","menu","kind","shortcut"]},"suggest.highPrioritySourceLimit":{type:"integer",minimum:1,maximum:100,scope:"language-overridable",description:"Max items count for source priority bigger than or equal to 90."},"suggest.insertMode":{type:"string",scope:"language-overridable",default:"replace",description:"Controls whether words are overwritten when accepting completions.",enum:["insert","replace"]},"suggest.ignoreRegexps":{type:"array",scope:"language-overridable",items:{type:"string"},description:"Regexps to ignore when trigger suggest",default:[]},"suggest.invalidInsertCharacters":{type:"array",items:{type:"string"},scope:"application",description:"Invalid character for strip valid word when inserting text of complete item.",default:["\r",` +`]},"suggest.labelMaxLength":{type:"integer",scope:"application",description:"Max length of abbr that shown as label of complete item.",default:200},"suggest.languageSourcePriority":{type:"integer",default:99,scope:"language-overridable",description:"Priority of language sources."},"suggest.localityBonus":{type:"boolean",description:"Controls whether sorting favors words that appear close to the cursor.",scope:"language-overridable",default:!0},"suggest.lowPrioritySourceLimit":{type:"integer",minimum:1,maximum:100,scope:"language-overridable",description:"Max items count for source priority lower than 90."},"suggest.maxCompleteItemCount":{type:"integer",default:256,scope:"language-overridable",description:"Maximum number of complete items shown in vim"},"suggest.minTriggerInputLength":{type:"integer",default:1,scope:"language-overridable",description:"Minimal input length for trigger completion, default 1"},"suggest.noselect":{type:"boolean",scope:"application",description:"Not make vim select first item on popupmenu shown",default:!1},"suggest.preferCompleteThanJumpPlaceholder":{type:"boolean",description:"Confirm completion instead of jump to next placeholder when completion is activated.",scope:"resource",default:!1},"suggest.pumFloatConfig":{type:["object","null"],scope:"application",description:"Configure style of popup menu, suggest.floatConfig is used when not specified.",allOf:[{$ref:"#/definitions/floatConfig"}],additionalProperties:!1,default:null,properties:{border:{},rounded:{},highlight:{},borderhighlight:{},winblend:{},shadow:{}}},"suggest.removeDuplicateItems":{type:"boolean",description:"Remove completion items with duplicated word for all sources, snippet items are excluded.",scope:"language-overridable",default:!1},"suggest.reversePumAboveCursor":{type:"boolean",scope:"application",description:"Reverse order of complete items when pum shown above cursor.",default:!1},"suggest.selection":{type:"string",scope:"application",default:"first",description:"Controls how suggestions are pre-selected when showing the suggest list.",enum:["first","recentlyUsed","recentlyUsedByPrefix"]},"suggest.snippetIndicator":{type:"string",default:"~",scope:"application",description:"The character used in abbr of complete item to indicate the item could be expand as snippet."},"suggest.snippetsSupport":{type:"boolean",scope:"language-overridable",description:"Set to false to disable snippets support of completion.",default:!0},"suggest.timeout":{type:"integer",default:5e3,minimum:500,maximum:15e3,scope:"language-overridable",description:"Timeout for completion, in milliseconds."},"suggest.triggerAfterInsertEnter":{type:"boolean",description:"Trigger completion after InsertEnter, auto trigger should be 'always' to enable this option",scope:"language-overridable",default:!1},"suggest.triggerCompletionWait":{type:"integer",default:0,minimum:0,maximum:50,scope:"language-overridable",description:"Wait time between text change and completion start, cancel completion when text changed during wait."},"suggest.virtualText":{type:"boolean",scope:"application",description:"Show virtual text for insert word of selected item, requires neovim >= 0.5.0 or vim >= 9.0.0067",default:!1},"tree.closedIcon":{type:"string",scope:"application",default:"+",description:"Closed icon of tree view."},"tree.key.actions":{type:"string",scope:"application",default:"",description:"Trigger key to invoke actions."},"tree.key.activeFilter":{type:"string",scope:"application",default:"f",description:"Trigger key active filter."},"tree.key.close":{type:"string",scope:"application",default:"",description:"Trigger key to dispose the tree and close tree window."},"tree.key.collapseAll":{type:"string",scope:"application",default:"M",description:"Trigger key to collapse all tree node."},"tree.key.invoke":{type:"string",scope:"application",default:"",description:"Trigger key to invoke default command of current node or selection."},"tree.key.selectNext":{type:"string",scope:"application",default:"",description:"Trigger key to select next item during filter."},"tree.key.selectPrevious":{type:"string",scope:"application",default:"",description:"Trigger key to select previous item during filter."},"tree.key.toggle":{type:"string",scope:"application",default:"t",description:"Trigger key to toggle expand state of tree node, does nothing with leaf node."},"tree.key.toggleSelection":{type:"string",scope:"application",default:"",description:"Trigger key to select/unselect item"},"tree.openedIcon":{type:"string",scope:"application",default:"-",description:"Opened icon of tree view."},"typeHierarchy.enableTooltip":{type:"boolean",scope:"application",default:!0,description:"Enable tooltip to show relative filepath of type hierarchy."},"typeHierarchy.openCommand":{type:"string",scope:"application",default:"edit",description:"Open command for type hierarchy tree view."},"typeHierarchy.splitCommand":{type:"string",scope:"application",default:"botright 30vs",description:"Window split command used by type hierarchy tree view."},"workspace.rootPatterns":{type:"array",default:[".git",".hg",".projections.json"],scope:"application",description:"Root patterns to resolve workspaceFolder from parent folders of opened files, resolved from up to down.",items:{type:"string"}},"workspace.bottomUpFiletypes":{type:"array",default:[],scope:"application",description:'Filetypes that should have workspace folder should resolved from base directory of file, or ["*"] for any filetype.',items:{type:"string"}},"workspace.ignoredFiletypes":{type:"array",default:[],scope:"application",description:"Filetypes that should be ignored for workspace folder resolve.",items:{type:"string"}},"workspace.ignoredFolders":{type:"array",default:["$HOME"],scope:"application",description:"List of folders that should not be resolved as workspace folder, environment variables and minimatch patterns can be used.",items:{type:"string"}},"workspace.openOutputCommand":{type:"string",default:"vs",scope:"resource",description:"Command used to open output channel."},"workspace.openResourceCommand":{type:"string",default:"tab drop",scope:"application",description:"Command to open files that not loaded, load files as hidden buffers when empty."},"workspace.workspaceFolderCheckCwd":{type:"boolean",default:!0,scope:"application",description:"Whether the current working directory should be used first when checking patterns match for workspace folder."},"workspace.workspaceFolderFallbackCwd":{type:"boolean",default:!0,scope:"application",description:"Use current working directory as workspace folder when no root patterns resolved."},languageserver:{type:"object",default:{},scope:"resource",description:"Dictionary of languageservers, key is used as id of languageserver, restart coc.nvim required after change.",patternProperties:{"^[_a-zA-Z]+$":{oneOf:[{$ref:"#/definitions/languageServerModule"},{$ref:"#/definitions/languageServerCommand"},{$ref:"#/definitions/languageServerSocket"}]}}}}}});var op,OP,pce,AP=D(()=>{"use strict";$();ko();op={JSONContribution:"base.contributions.json"},OP=class{constructor(){this._onDidChangeSchema=new p.Emitter;this.onDidChangeSchema=this._onDidChangeSchema.event;this.schemasById={}}registerSchema(e,t){this.schemasById[e]=t,this._onDidChangeSchema.fire(e)}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}getSchemaContributions(){return{schemas:this.schemasById}}},pce=new OP;di.add(op.JSONContribution,pce)});function NP(n,e){if(n.length<=1)return n;var t=n.length/2|0,i=n.slice(0,t),r=n.slice(t);NP(i,e),NP(r,e);for(var o=0,s=0,a=0;ot.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:n}function mce(n){var e=TZ(n.range);return e!==n.range?{newText:n.newText,range:e}:n}var fce,SZ,oo,sp=D(()=>{"use strict";fce=function(n,e,t){if(t||arguments.length===2)for(var i=0,r=e.length,o;ie?r=o:i=o+1}var s=i-1;return{line:s,character:e-t[s]}},n.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var i=t[e.line],r=e.line+1l&&u.push(s.substring(l,g)),h.newText.length&&u.push(h.newText),l=r.offsetAt(h.range.end)}return u.push(s.substr(l)),u.join("")}n.applyEdits=i})(oo||(oo={}))});function yce(n){return n.replace(/\$\{(.*?)\}/g,(e,t)=>{if(t.startsWith("env:")){let i=t.split(":")[1];return process.env[i]??e}switch(t){case"userHome":return Et.homedir();case"cwd":return process.cwd();default:return e}})}function HP(n){if(n==null)return n;if(typeof n=="string")return yce(n);if(Array.isArray(n))return n.map(e=>HP(e));if(St(n)){for(let e of Object.keys(n))n[e]=HP(n[e]);return n}return n}function RZ(n){let e;switch(n){case 1:e=1;break;case 2:e=2;break;default:e=3}return e}function rw(n){let e;if(typeof n=="string")e={resource:n};else if(A.isUri(n))e={resource:n.toString()};else if(n!=null){let t=n.uri,i=n.languageId;e={resource:t,overrideIdentifier:i}}return e}function ow(n){let e=[];if(lp.test(n)){let t=kZ.exec(n);for(;t!=null&&t.length;){let i=t[1].trim();i&&e.push(i),t=kZ.exec(n)}}return wi(e)}function _Z(n){let e={};for(let t of Object.keys(n))if(t.indexOf(".")==-1)e[t]=n[t];else{let i=t.split("."),r=e,o=i.length;for(let s=0;s"u"?t:o}function Hc(n){if(n){if(Array.isArray(n))return n.map(Hc);if(typeof n=="object"){let e=Object.create(null);for(let t in n)e[t]=Hc(n[t]);return e}}return n}function qP(n,e){let t=n?e?n.keys.filter(o=>e.keys.indexOf(o)===-1):[...n.keys]:[],i=e?n?e.keys.filter(o=>n.keys.indexOf(o)===-1):[...e.keys]:[],r=[];if(n&&e){for(let o of e.keys)if(n.keys.indexOf(o)!==-1){let s=ap(e.contents,o),a=ap(n.contents,o);Fe(s,a)||r.push(o)}}return{added:t,removed:i,updated:r}}function FZ(n){switch(Array.isArray(n)?n[0]:n){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}function sw(n,e){if(e){if(n&&En(n,e))return n[e];let t=e.split("."),i=n;for(let r=0;i&&r{"use strict";jg();sp();ae();Je();Se();Xe();ce();Be();To();bce="file:///1",PZ="\\[([^\\]]+)\\]",kZ=new RegExp(PZ,"g"),nw=`^(${PZ})+$`,lp=new RegExp(nw)});var ui,cp=D(()=>{"use strict";Se();Xe();Be();ba();ui=class{constructor(e={},t=[],i=[]){this._contents=e;this._keys=t;this._overrides=i;this.frozen=!1;this.overrideConfigurations=new Map}get contents(){return this.checkAndFreeze(this._contents)}get overrides(){return this.checkAndFreeze(this._overrides)}get keys(){return this.checkAndFreeze(this._keys)}get isFrozen(){return this.frozen}checkAndFreeze(e){return this.frozen&&!Object.isFrozen(e)?By(e):e}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}clone(){return new ui(Fi(this._contents),[...this.keys],Fi(this.overrides))}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}getValue(e){return e?ap(this.contents,e):this.contents}getOverrideValue(e,t){let i=this.getContentsForOverrideIdentifier(t);return i?e?ap(i,e):i:void 0}getKeysForOverrideIdentifier(e){let t=[];for(let i of this.overrides)i.identifiers.includes(e)&&t.push(...i.keys);return wi(t)}getAllOverrideIdentifiers(){let e=[];for(let t of this.overrides)e.push(...t.identifiers);return wi(e)}override(e){let t=this.overrideConfigurations.get(e);return t||(t=this.createOverrideConfigurationModel(e),this.overrideConfigurations.set(e,t)),t}merge(...e){let t=Fi(this._contents),i=Fi(this._overrides),r=[...this._keys];for(let o of e)if(!o.isEmpty()){this.mergeContents(t,o.contents);for(let s of o.overrides){let[a]=i.filter(l=>Fe(l.identifiers,s.identifiers));a?(this.mergeContents(a.contents,s.contents),a.keys.push(...s.keys),a.keys=wi(a.keys)):i.push(Fi(s))}for(let s of o.keys)r.indexOf(s)===-1&&r.push(s)}return new ui(t,r,i)}freeze(){return this.frozen=!0,this}mergeContents(e,t){for(let i of Object.keys(t)){if(i in e&&St(e[i])&&St(t[i])){this.mergeContents(e[i],t[i]);continue}e[i]=Fi(t[i])}}setValue(e,t){this.addKey(e),Bc(this.contents,e,t,i=>{console.error(i)})}removeValue(e){this.removeKey(e)&&IZ(this.contents,e)}addKey(e){let t=this.keys.length;for(let i=0;i{o&&(i?this.mergeContents(i,o):i=Fi(o))};for(let o of this.overrides)Fe(o.identifiers,[e])?t=o.contents:o.identifiers.includes(e)&&r(o.contents);return r(t),i}}});function qc(n,e){let{added:t,removed:i,updated:r}=qP(e,n),o=[],s=(n==null?void 0:n.getAllOverrideIdentifiers())??[],a=(e==null?void 0:e.getAllOverrideIdentifiers())??[];if(e){let l=a.filter(u=>!s.includes(u));for(let u of l)o.push([u,e.getKeysForOverrideIdentifier(u)])}if(n){let l=s.filter(u=>!a.includes(u));for(let u of l)o.push([u,n.getKeysForOverrideIdentifier(u)])}if(e&&n){for(let l of s)if(a.includes(l)){let u=qP({contents:n.getOverrideValue(void 0,l)||{},keys:n.getKeysForOverrideIdentifier(l)},{contents:e.getOverrideValue(void 0,l)||{},keys:e.getKeysForOverrideIdentifier(l)});o.push([l,[...u.added,...u.removed,...u.updated]])}}return{added:t,removed:i,updated:r,overrides:o}}var aw,ya,WP=D(()=>{"use strict";Je();To();Se();at();Be();cp();ba();aw=class{constructor(){this._folderConfigurations=new Map}get keys(){return this._folderConfigurations.keys()}has(e){for(let t of this.keys)if(li(e,t))return!0;return!1}set(e,t){let i=ji(e);this._folderConfigurations.set(i,t)}get(e){let t=ji(e);return this._folderConfigurations.get(t)}delete(e){let t=ji(e);this._folderConfigurations.delete(t)}forEach(e){this._folderConfigurations.forEach(e)}getConfigurationByResource(e){let t=A.parse(e);if(t.scheme!=="file")return;let i=Array.from(this._folderConfigurations.keys());i.sort((o,s)=>s.length-o.length);let r=t.fsPath;for(let o of i)if(pt(o,r,!0))return{folder:o,model:this._folderConfigurations.get(o)}}},ya=class{constructor(e,t,i=new ui,r=new aw,o=new ui){this._defaultConfiguration=e;this._userConfiguration=t;this._workspaceConfiguration=i;this._folderConfigurations=r;this._memoryConfiguration=o;this._workspaceConsolidatedConfiguration=null;this._resolvedFolderConfigurations=new Map;this._memoryConfigurationByResource=new Map}updateValue(e,t,i={}){let r;i.resource?(r=this._memoryConfigurationByResource.get(i.resource),r||(r=new ui,this._memoryConfigurationByResource.set(i.resource,r))):r=this._memoryConfiguration,t===void 0?r.removeValue(e):r.setValue(e,t),i.resource||(this._workspaceConsolidatedConfiguration=null)}hasFolder(e){return this._folderConfigurations.has(e)}addFolderConfiguration(e,t,i){this._folderConfigurations.set(e,t),i&&this._resolvedFolderConfigurations.set(i,e)}deleteFolderConfiguration(e){this._folderConfigurations.delete(e)}getWorkspaceConsolidateConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this._userConfiguration,this._workspaceConfiguration,this._memoryConfiguration),this._workspaceConsolidatedConfiguration=this._workspaceConsolidatedConfiguration.freeze()),this._workspaceConsolidatedConfiguration}getFolderConfigurationModelForResource(e){let t=this._resolvedFolderConfigurations.get(e);if(t)return this._folderConfigurations.get(t);let i=this._folderConfigurations.getConfigurationByResource(e);if(!!i)return this._resolvedFolderConfigurations.set(e,i.folder),i.model}resolveFolder(e){let t=this._resolvedFolderConfigurations.get(e);if(t)return t;let i=Array.from(this._folderConfigurations.keys);i.sort((r,o)=>o.length-r.length);for(let r of i)if(pt(r,A.parse(e).fsPath,!0))return this._resolvedFolderConfigurations.set(e,r),r}getConsolidatedConfigurationModel(e){let t=this.getWorkspaceConsolidateConfiguration();if(e.resource){let i=this.getFolderConfigurationModelForResource(e.resource);i&&(t=t.merge(i));let r=this._memoryConfigurationByResource.get(e.resource);r&&(t=t.merge(r))}return e.overrideIdentifier&&(t=t.override(e.overrideIdentifier)),t}getValue(e,t){return this.getConsolidatedConfigurationModel(t).getValue(e)}inspect(e,t){let i=this.getConsolidatedConfigurationModel(t),r=this.getFolderConfigurationModelForResource(t.resource),o=t.resource?this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration:this._memoryConfiguration,s=t.overrideIdentifier?this._defaultConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this._defaultConfiguration.freeze().getValue(e),a=t.overrideIdentifier?this._userConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this._userConfiguration.freeze().getValue(e),l=t.overrideIdentifier?this._workspaceConfiguration.freeze().override(t.overrideIdentifier).getValue(e):this._workspaceConfiguration.freeze().getValue(e),u=r?t.overrideIdentifier?r.freeze().override(t.overrideIdentifier).getValue(e):r.freeze().getValue(e):void 0,c=t.overrideIdentifier?o.override(t.overrideIdentifier).getValue(e):o.getValue(e),d=i.getValue(e),h=wi(i.overrides.map(g=>g.identifiers).flat()).filter(g=>i.getOverrideValue(e,g)!==void 0);return{defaultValue:s,userValue:a,workspaceValue:l,workspaceFolderValue:u,memoryValue:c,value:d,default:s!==void 0?{value:this._defaultConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this._defaultConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,user:a!==void 0?{value:this._userConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this._userConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,workspace:l!==void 0?{value:this._workspaceConfiguration.freeze().getValue(e),override:t.overrideIdentifier?this._workspaceConfiguration.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,workspaceFolder:u!==void 0?{value:r==null?void 0:r.freeze().getValue(e),override:t.overrideIdentifier?r==null?void 0:r.freeze().getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,memory:c!==void 0?{value:o.getValue(e),override:t.overrideIdentifier?o.getOverrideValue(e,t.overrideIdentifier):void 0}:void 0,overrideIdentifiers:h.length?h:void 0}}get defaults(){return this._defaultConfiguration}get user(){return this._userConfiguration}get workspace(){return this._workspaceConfiguration}get memory(){return this._memoryConfiguration}getConfigurationModel(e,t){switch(e){case 0:return this._defaultConfiguration;case 1:return this._userConfiguration;case 2:return this._workspaceConfiguration;case 3:return this._folderConfigurations.get(t)??new ui;default:return this._memoryConfiguration}}updateFolderConfiguration(e,t){this._folderConfigurations.set(e,t)}updateUserConfiguration(e){this._userConfiguration=e,this._workspaceConsolidatedConfiguration=null}updateWorkspaceConfiguration(e){this._workspaceConfiguration=e,this._workspaceConsolidatedConfiguration=null}updateDefaultConfiguration(e){this._defaultConfiguration=e,this._workspaceConsolidatedConfiguration=null}updateMemoryConfiguration(e){this._memoryConfiguration=e,this._workspaceConsolidatedConfiguration=null}compareAndUpdateMemoryConfiguration(e){let{added:t,updated:i,removed:r,overrides:o}=qc(this._memoryConfiguration,e),s=[...t,...i,...r];return s.length&&this.updateMemoryConfiguration(e),{keys:s,overrides:o}}compareAndUpdateUserConfiguration(e){let{added:t,updated:i,removed:r,overrides:o}=qc(this._userConfiguration,e),s=[...t,...i,...r];return s.length&&this.updateUserConfiguration(e),{keys:s,overrides:o}}compareAndUpdateDefaultConfiguration(e,t){let i=[];if(!t){let{added:r,updated:o,removed:s}=qc(this._defaultConfiguration,e);t=[...r,...o,...s]}for(let r of t)for(let o of ow(r)){let s=this._defaultConfiguration.getKeysForOverrideIdentifier(o),a=e.getKeysForOverrideIdentifier(o),l=[...a.filter(u=>s.indexOf(u)===-1),...s.filter(u=>a.indexOf(u)===-1),...s.filter(u=>!Fe(this._defaultConfiguration.override(o).getValue(u),e.override(o).getValue(u)))];i.push([o,l])}return this.updateDefaultConfiguration(e),{keys:t,overrides:i}}compareAndUpdateWorkspaceConfiguration(e){let{added:t,updated:i,removed:r,overrides:o}=qc(this._workspaceConfiguration,e),s=[...t,...i,...r];return s.length&&this.updateWorkspaceConfiguration(e),{keys:s,overrides:o}}compareAndUpdateFolderConfiguration(e,t){let i=this._folderConfigurations.get(e),{added:r,updated:o,removed:s,overrides:a}=qc(i,t),l=[...r,...o,...s];return(l.length||!i)&&this.updateFolderConfiguration(e,t),{keys:l,overrides:a}}compareAndDeleteFolderConfiguration(e){let t=this._folderConfigurations.get(e);if(!t)return;this.deleteFolderConfiguration(e);let{added:i,updated:r,removed:o,overrides:s}=qc(t,void 0);return{keys:[...i,...r,...o],overrides:s}}allKeys(){let e=new Set;return this._defaultConfiguration.freeze().keys.forEach(t=>e.add(t)),this._userConfiguration.freeze().keys.forEach(t=>e.add(t)),this._workspaceConfiguration.freeze().keys.forEach(t=>e.add(t)),this._folderConfigurations.forEach(t=>t.freeze().keys.forEach(i=>e.add(i))),[...e.values()]}toData(){let{_defaultConfiguration:e,_userConfiguration:t,_workspaceConfiguration:i,_folderConfigurations:r}=this,o=[];return r.forEach((s,a)=>{o.push([a,s.toJSON()])}),{defaults:e.toJSON(),user:t.toJSON(),workspace:i.toJSON(),folders:o}}static parse(e){let t=this.parseConfigurationModel(e.defaults),i=this.parseConfigurationModel(e.user),r=this.parseConfigurationModel(e.workspace),o=new aw;return e.folders.forEach(s=>{o.set(s[0],this.parseConfigurationModel(s[1]))}),new ya(t,i,r,o)}static parseConfigurationModel(e){return new ui(e.contents,e.keys,e.overrides).freeze()}}});var lw,MZ=D(()=>{"use strict";Be();WP();cp();ba();lw=class{constructor(e,t,i){this.change=e;this.previous=t;this.currentConfiguration=i;this._previousConfiguration=void 0;let r=new Set;e.keys.forEach(s=>r.add(s)),e.overrides.forEach(([,s])=>s.forEach(a=>r.add(a))),this.affectedKeys=[...r.values()];let o=new ui;this.affectedKeys.forEach(s=>o.setValue(s,{})),this.affectedKeysTree=o.contents}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=ya.parse(this.previous)),this._previousConfiguration}affectsConfiguration(e,t){let i=t?rw(t):void 0;if(this.doesAffectedKeysTreeContains(this.affectedKeysTree,e)){if(i){let r=this.previousConfiguration?this.previousConfiguration.getValue(e,i):void 0,o=this.currentConfiguration.getValue(e,i);return!Fe(r,o)}return!0}return!1}doesAffectedKeysTreeContains(e,t){let i=up({[t]:!0},()=>{}),r;for(;typeof i=="object"&&(r=Object.keys(i)[0]);){if(e=e[r],!e)return!1;i=i[r]}return!0}}});var C1e,uw,jZ=D(()=>{"use strict";jg();ae();Ce();cp();ba();C1e=J("parser"),uw=class{constructor(e){this._name=e;this._raw=null;this._configurationModel=null;this._parseErrors=[]}get configurationModel(){return this._configurationModel||new ui}get errors(){return this._parseErrors}parse(e,t){if(e!=null){let i=this.doParseContent(e);this.parseRaw(i,t)}}parseRaw(e,t){this._raw=e;let{contents:i,keys:r,overrides:o}=this.doParseRaw(e,t);this._configurationModel=new ui(i,r,o)}doParseContent(e){let t={},i=null,r=[],o=[],s=[];function a(u){Array.isArray(r)?r.push(u):i!==null&&(r[i]=u)}let l={onObjectBegin:()=>{let u={};a(u),o.push(r),r=u,i=null},onObjectProperty:u=>{i=u},onObjectEnd:()=>{r=o.pop()},onArrayBegin:()=>{let u=[];a(u),o.push(r),r=u,i=null},onArrayEnd:()=>{r=o.pop()},onLiteralValue:a,onError:(u,c,d)=>{s.push({error:u,length:d,offset:c})}};if(e)try{IY(e,l,{allowTrailingComma:!0,allowEmptyContent:!0}),t=r[0]??{},s.length>0&&(this._parseErrors=EZ(e,s))}catch(u){this._parseErrors=[{range:M.create(0,0,0,0),message:`Error on parse configuration file ${this._name}: ${u}`}]}return t}doParseRaw(e,t){let i=a=>{console.error(`Conflict in settings file ${this._name}: ${a}`)},r=up(e,i,!0),o=Object.keys(e),s=this.toOverrides(e,i);return{contents:r,keys:o,overrides:s,restricted:[]}}toOverrides(e,t){let i=[];for(let r of Object.keys(e))if(lp.test(r)){let o={};for(let s in e[r])o[s]=e[r][s];i.push({identifiers:ow(r),keys:Object.keys(o),contents:up(o,t,!0)})}return i}}});function wce(n,e=void 0){return n.trim()?lp.test(n)?`Cannot register ${n}. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings`:OZ.getConfigurationProperties()[n]!==void 0?`Cannot register '${n}'. This property is already registered.`:null:"Cannot register an empty property"}var vce,Zl,Yl,Wl,dp,cw,YP,OZ,dw=D(()=>{"use strict";Se();AP();Be();$();ko();To();ba();vce=["log-path","logPath"],Zl={Configuration:"base.contributions.configuration"},Yl={properties:{},patternProperties:{}},Wl={properties:{},patternProperties:{}},dp="vscode://schemas/settings/resourceLanguage",cw=di.as(op.JSONContribution),YP=class{constructor(){this._onDidSchemaChange=new p.Emitter;this.onDidSchemaChange=this._onDidSchemaChange.event;this._onDidUpdateConfiguration=new p.Emitter;this.onDidUpdateConfiguration=this._onDidUpdateConfiguration.event;this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!1,errorMessage:"Unknown coc.nvim configuration property",allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.excludedConfigurationProperties={},cw.registerSchema(dp,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,t=!0){this.registerConfigurations([e],t)}registerConfigurations(e,t=!0){let i=this.doRegisterConfigurations(e,t);cw.notifySchemaChanged(dp),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i})}deregisterConfigurations(e){let t=this.doDeregisterConfigurations(e);cw.notifySchemaChanged(dp),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:t})}updateConfigurations({add:e,remove:t}){let i=[];i.push(...this.doDeregisterConfigurations(t)),i.push(...this.doRegisterConfigurations(e,!1)),cw.notifySchemaChanged(dp),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:wi(i)})}doRegisterConfigurations(e,t){let i=[];return e.forEach(r=>{i.push(...this.validateAndRegisterProperties(r,t,r.extensionInfo)),this.registerJSONConfiguration(r)}),i}doDeregisterConfigurations(e){let t=[],i=r=>{for(let o in $e(r.properties))t.push(o),delete this.configurationProperties[o],this.removeFromSchema(o,r.properties[o])};for(let r of e)i(r);return t}validateAndRegisterProperties(e,t,i,r=1){r=e.scope==null?r:e.scope;let o=[],s=e.properties;for(let a in $e(s)){let l=s[a];if(t&&wce(a,l)){delete s[a];continue}if(l.source=i,l.defaultDefaultValue=s[a].default,this.updatePropertyDefaultValue(a,l),l.scope=l.scope==null?r:l.scope,i&&(l.description=(l.description?`${l.description} +`:"")+`From ${i.id}`),l.hasOwnProperty("included")&&!l.included){this.excludedConfigurationProperties[a]=s[a],delete s[a];continue}else this.configurationProperties[a]=s[a];!s[a].deprecationMessage&&s[a].markdownDeprecationMessage&&(s[a].deprecationMessage=s[a].markdownDeprecationMessage),o.push(a)}return o}getConfigurationProperties(){return this.configurationProperties}getExcludedConfigurationProperties(){return this.excludedConfigurationProperties}registerJSONConfiguration(e){(i=>{let r=i.properties;for(let o in $e(r))this.updateSchema(o,r[o])})(e)}updateSchema(e,t){switch(Yl.properties[e]=t,t.scope){case 2:case 3:Wl.properties[e]=t;break;case 4:Wl.properties[e]=t,this.resourceLanguageSettingsSchema.properties[e]=t;break}}removeFromSchema(e,t){switch(delete Yl.properties[e],t.scope){case 2:case 3:case 4:delete Wl.properties[e],delete this.resourceLanguageSettingsSchema.properties[e];break}}registerOverridePropertyPatternKey(){let e={type:"object",description:"Configure editor settings to be overridden for a language.",errorMessage:"This setting does not support per-language configuration.",$ref:dp};Yl.patternProperties[nw]=e,Wl.patternProperties[nw]=e}updatePropertyDefaultValue(e,t){let i=t.defaultDefaultValue;typeof i>"u"&&!vce.some(r=>e.includes(r))&&(i=FZ(t.type)),t.default=i,t.defaultValueSource=void 0}},OZ=new YP;di.add(Zl.Configuration,OZ)});var hw,ZP,xce,Cce,Sce,va,hp,AZ=D(()=>{"use strict";Je();hw=sr(CZ());Ce();ee();Se();Jt();hs();at();Xe();AP();ce();Be();$();ko();WP();MZ();cp();jZ();dw();To();ba();ZP=J("configurations"),xce="vscode://schemas/settings/user",Cce="vscode://schemas/settings/folder",Sce=di.as(op.JSONContribution),va=di.as(Zl.Configuration),hp=class{constructor(e,t,i=!1,r=process.cwd()){this.userConfigFile=e;this._proxy=t;this.noWatch=i;this._watchedFiles=new Set;this._errors=new Map;this._onError=new p.Emitter;this._onChange=new p.Emitter;this.disposables=[];this._initialized=!1;this.cached=[];this.onError=this._onError.event;this.onDidChange=this._onChange.event;let o=this.loadDefaultConfigurations(),s=this.parseConfigurationModel(this.userConfigFile);this._configuration=new ya(o,s),this.watchFile(this.userConfigFile,1);let a=this.folderToConfigfile(r);a&&this.addFolderFile(a,!0),this._initialConfiguration=this.getConfiguration(void 0,null)}get initialConfiguration(){return this._initialConfiguration}get markdownPreference(){let e=this._initialConfiguration.get("coc.preferences");return{excludeImages:e.excludeImageLinksInMarkdownDocument,breaks:e.enableGFMBreaksInMarkdownDocument}}get errors(){return this._errors}get configuration(){return this._configuration}flushConfigurations(){this._initialized=!0,va.registerConfigurations(this.cached),this.cached=[]}updateConfigurations(e,t){this._initialized?te(t)?va.registerConfigurations(e):va.updateConfigurations({add:e,remove:t}):this.cached.push(...e)}loadDefaultConfigurations(){let e={properties:bv(hw.default.properties)};va.registerConfiguration(e),va.onDidUpdateConfiguration(s=>{if(s.properties.length===0)return;let a=va.getConfigurationProperties(),l=[],u=Object.create(null),c=[];for(let h of s.properties){let g=a[h];if(g){c.push(h);let f=g.default;Bc(u,h,f,m=>{ZP.error(`Conflict configuration: ${m}`)})}else l.push(h)}let d=this._configuration.defaults.merge(new ui(u,c));l.forEach(h=>{d.removeValue(h)}),this._initialized?this.changeConfiguration(0,d,void 0,s.properties):(this._configuration.updateDefaultConfiguration(d),this._initialConfiguration=this.getConfiguration(void 0,null))},null,this.disposables);let t=va.getConfigurationProperties(),i={},r=[];return Object.keys(t).forEach(s=>{let a=t[s].default;r.push(s),Bc(i,s,a,void 0)}),new ui(i,r)}getDescription(e){let t=Yl.properties[e];return t?t.description:void 0}getJSONSchema(e){if(e===xce)return{properties:Yl.properties,patternProperties:Yl.patternProperties,definitions:Object.assign(Dk(),hw.default.definitions),additionalProperties:!1,allowTrailingCommas:!0,allowComments:!0};if(e===Cce)return{properties:Wl.properties,patternProperties:Wl.patternProperties,definitions:Object.assign(Dk(),hw.default.definitions),errorMessage:"Configuration property may not work as folder configuration",additionalProperties:!1,allowTrailingCommas:!0,allowComments:!0};let t=Sce.getSchemaContributions().schemas;if(En(t,e))return t[e]}parseConfigurationModel(e){if(!e||!F.existsSync(e))return new ui;let t=new uw(e),i=F.readFileSync(e,"utf8"),r=A.file(e).toString();return t.parse(i),te(t.errors)?(this._errors.delete(r),this._onError.fire({uri:r,diagnostics:[]})):(this._errors.set(r,t.errors),this._onError.fire({uri:r,diagnostics:t.errors})),t.configurationModel}folderToConfigfile(e){if(li(e,Et.homedir()))return;let t=R.join(e,`.vim/${Eg}`);if(!li(t,this.userConfigFile))return t}updateMemoryConfig(e){let t=Object.keys(e);if(!e||t.length==0)return;let i=this._configuration.memory.clone(),r=va.getConfigurationProperties();t.forEach(o=>{let s=e[o];if(s===void 0)i.removeValue(o);else if(r[o]!=null)i.setValue(o,s);else if(St(s))for(let a of Object.keys(s))i.setValue(`${o}.${a}`,s[a]);else i.setValue(o,s)}),this.changeConfiguration(4,i,void 0,t)}addFolderFile(e,t=!1,i){let r=ji(R.resolve(e,"../.."));if(this._configuration.hasFolder(r)||!F.existsSync(e))return!1;this.watchFile(e,3);let o=this.parseConfigurationModel(e);return this._configuration.addFolderConfiguration(r,o,i),ZP.info(`Add folder configuration from ${t?"cwd":"file"}:`,e),!0}watchFile(e,t){if(!F.existsSync(e)||this._watchedFiles.has(e)||this.noWatch)return;this._watchedFiles.add(e);let i=3?ji(R.resolve(e,"../..")):void 0,r=Dc(e,()=>{let o=this.parseConfigurationModel(e);this.changeConfiguration(t,o,i)});this.disposables.push(r)}changeConfiguration(e,t,i,r){let o=e===0&&r&&r.every(c=>c.startsWith("list.source")),s=this._configuration,a=o?void 0:s.toData(),l;if(e===0?l=s.compareAndUpdateDefaultConfiguration(t,r):e===1?l=s.compareAndUpdateUserConfiguration(t):e===2?l=s.compareAndUpdateWorkspaceConfiguration(t):e===3?l=s.compareAndUpdateFolderConfiguration(i,t):l=s.compareAndUpdateMemoryConfiguration(t),!l||l.keys.length==0||(e!==3&&(this._initialConfiguration=this.getConfiguration(void 0,null)),o))return;let u=new lw(l,a,s);u.source=e,this._onChange.fire(u)}getDefaultResource(){var t;let e=(t=this._proxy)==null?void 0:t.root;if(!!e)return A.file(e).toString()}getConfiguration(e,t){let i=this._configuration,r=t?rw(t):{resource:t===null?void 0:this.getDefaultResource()},o=Object.freeze(sw(i.getValue(void 0,r),e)),s={has(a){return typeof sw(o,a)<"u"},get:(a,l)=>{let u=sw(o,a);return u??l},update:(a,l,u=!1)=>{var y;let c=r.resource,d=e?`${e}.${a}`:a,h;typeof u=="boolean"?h=u?1:3:h=RZ(u);let g;if(h===3&&(g=this._configuration.resolveFolder(c)??this.resolveWorkspaceFolderForResource(c),!g)){console.error(`Unable to locate workspace folder configuration for ${c}`),ZP.error("Unable to locate workspace folder configuration",c,Error().stack);return}let f=this._configuration.getConfigurationModel(h,g).clone();l===void 0?f.removeValue(d):f.setValue(d,l),this.changeConfiguration(h,f,g);let m;return h===3?m=this.folderToConfigfile(g):h===1&&(m=this.userConfigFile),m?(y=this._proxy)==null?void 0:y.modifyConfiguration(m,d,l):Promise.resolve()},inspect:a=>{a=e?`${e}.${a}`:a;let l=this._configuration.inspect(a,r);return{key:a,defaultValue:l.defaultValue,globalValue:l.userValue,workspaceValue:l.workspaceValue,workspaceFolderValue:l.workspaceFolderValue}}};return Object.defineProperty(s,"has",{enumerable:!1}),Object.defineProperty(s,"get",{enumerable:!1}),Object.defineProperty(s,"update",{enumerable:!1}),Object.defineProperty(s,"inspect",{enumerable:!1}),typeof o=="object"&&AD(s,o,!1),By(s)}locateFolderConfigution(e){let t=this._configuration.resolveFolder(e);if(t)return!0;let i=A.parse(e);if(i.scheme!=="file")return!1;let r=t=kc(".vim",i.fsPath);if(!r)return!1;t=R.dirname(r);let o=this.folderToConfigfile(t);return o?(this.addFolderFile(o,!1,e),!0):!1}resolveWorkspaceFolderForResource(e){if(this._proxy&&typeof this._proxy.getWorkspaceFolder=="function"){let t=this._proxy.getWorkspaceFolder(e);if(!t)return;let i=t.fsPath,r=this.folderToConfigfile(i);if(r)return F.existsSync(r)||(F.mkdirSync(R.dirname(r),{recursive:!0}),F.writeFileSync(r,"{}","utf8")),this.addFolderFile(r,!1,e),i}}reset(){this._errors.clear();let e=new ui;this.changeConfiguration(4,e,void 0)}dispose(){this._onError.dispose(),this._onChange.dispose(),Y(this.disposables)}}});var Dce,gp,NZ=D(()=>{"use strict";jg();Je();Ce();ce();Dce=J("configuration-shape"),gp=class{constructor(e,t=!1){this.resolver=e;this._test=t}get root(){return this.resolver.root}async modifyConfiguration(e,t,i){if(this._test)return;Dce.info(`modify configuration file: ${e}`,t,i);let r=R.dirname(e),o={tabSize:2,insertSpaces:!0};F.existsSync(r)||F.mkdirSync(r,{recursive:!0});let s=F.readFileSync(e,{encoding:"utf8",flag:"a+"});s=s||"{}";let a=FY(s,[t],i,{formattingOptions:o});s=MY(s,a),F.writeFileSync(e,s,{encoding:"utf8"})}getWorkspaceFolder(e){if(typeof this.resolver.getWorkspaceFolder=="function"){let t=this.resolver.getWorkspaceFolder(e);if(t)return A.parse(t.uri)}}}});function BZ(n,e){let t=te(e.arglist)?"":", "+e.arglist.join(", "),i=Array.isArray(e.event)?e.event.join(","):e.event,r=e.pattern!=null?e.pattern:"*";/\buser\b/i.test(i)&&(r="");let o=e.request?"request":"notify";return`autocmd! ${JP} ${i} ${r} call coc#rpc#${o}('doAutocmd', [${n}${t}])`}var HZ,JP,pp,qZ=D(()=>{"use strict";ee();Se();$();HZ=0,JP="coc_dynamic_autocmd",pp=class{constructor(){this.autocmds=new Map;this.disposables=[]}attach(e,t){this.nvim=e,this.env=t}async doAutocmd(e,t){let i=this.autocmds.get(e);i&&await Promise.resolve(i.callback.apply(i.thisArg,t))}registerAutocmd(e){HZ+=1;let t=HZ;return this.autocmds.set(t,e),this.nvim.command(BZ(t,e),!0),p.Disposable.create(()=>{this.autocmds.delete(t),this.resetDynamicAutocmd()})}resetDynamicAutocmd(){let{nvim:e}=this;e.pauseNotification(),e.command(`autocmd! ${JP}`,!0);for(let[t,i]of this.autocmds.entries())e.command(BZ(t,i),!0);e.resumeNotification(!1,!0)}dispose(){this.nvim.command(`autocmd! ${JP}`,!0),Y(this.disposables)}}});function WZ(n){let e=`call coc#rpc#request('CocAutocmd', ['BufReadCmd','${n}', expand('')]) | filetype detect`;return`autocmd! coc_dynamic_content BufReadCmd,FileReadCmd,SourceCmd ${n}:/* ${e}`}var fp,YZ=D(()=>{"use strict";Je();Re();ee();$();pe();fp=class{constructor(e){this.documents=e;this.disposables=[];this.providers=new Map;this._onDidProviderChange=new p.Emitter;this.onDidProviderChange=this._onDidProviderChange.event}attach(e){this.nvim=e,_.on("BufReadCmd",this.onBufReadCmd,this,this.disposables)}get schemes(){return Array.from(this.providers.keys())}async onBufReadCmd(e,t){let i=this.providers.get(e);if(!i)return;let r=new p.CancellationTokenSource,o=await Promise.resolve(i.provideTextDocumentContent(A.parse(t),r.token)),s=await this.nvim.buffer;await s.setLines(se(o).split(/\r?\n/),{start:0,end:-1,strictIndexing:!1}),process.nextTick(()=>{_.fire("BufCreate",[s.id])})}resetAutocmds(){let{nvim:e,schemes:t}=this;e.pauseNotification(),e.command("autocmd! coc_dynamic_content",!0);for(let i of t)e.command(WZ(i),!0);e.resumeNotification(!1,!0)}registerTextDocumentContentProvider(e,t){this.providers.set(e,t),this._onDidProviderChange.fire();let i=[];return t.onDidChange&&t.onDidChange(async r=>{let o=this.documents.getDocument(r.toString());if(!o)return;let s=new p.CancellationTokenSource,a=await Promise.resolve(t.provideTextDocumentContent(r,s.token));await o.buffer.setLines(a.split(/\r?\n/),{start:0,end:-1,strictIndexing:!1})},null,i),this.nvim.command(WZ(e),!0),p.Disposable.create(()=>{this.providers.delete(e),Y(i),this.resetAutocmds(),this._onDidProviderChange.fire()})}dispose(){Y(this.disposables),this._onDidProviderChange.dispose(),this.providers.clear()}}});function ZZ(n,e,t){let i=0,r=0,o=n.slice(t+1);for(let l=0;lr&&s.length){let l=0;for(let u=0;u=y&&w!==m&&(w+=1);let x=0;for(let T=0;T0?d.join(` +`)+` +`:"";if(!(h.length===0&&a===r-c))return Ye.replace(M.create(a,0,r-c,0),h)}var UP=D(()=>{"use strict";ae();ce();pe()});function ri(n,e){return Ot(n.start,e)===0&&Ot(n.end,e)===0}function $Z(n,e){return gw(n.start,e.start)?gw(n.end,e.end):!1}function gw(n,e){return n.line===e.line&&n.character===e.character}function wa(n,e){let t=n.start.line|0,i=e.start.line|0;if(t===i){let r=n.start.character|0,o=e.start.character|0;if(r===o){let s=n.end.line|0,a=e.end.line|0;if(s===a){let l=n.end.character|0,u=e.end.character|0;return l-u}return s-a}return r-o}return t-i}function XZ(n,e){let{start:t,end:i}=n;if(t.line>i.line||t.line===i.line&&t.character>i.character){let o=t;t=i,i=o}t=V.create(Math.max(0,t.line),Math.max(0,t.character));let r=Math.max(0,i.character);return typeof e=="number"&&r>e&&(r=e),i=V.create(Math.max(0,i.line),r),{start:t,end:i}}function pw(n,e){return ze(n.end,e.start)==0||ze(e.end,n.start)==0}function Wc(n,e){let{start:t,end:i}=n;return!(ze(i,e.start)<=0||ze(t,e.end)>=0)}function Jl(n,e){return!!(Ot(n.start,e)==0||Ot(n.end,e)==0||ri(e,n))}function GZ(n,e){let{line:t,character:i}=e,{start:r,end:o}=n,s=o.line==r.line?o.character+i:o.character;return M.create(r.line+t,i+r.character,o.line+t,s)}function zZ(n,e){let{start:t,end:i}=e;return n>=t.line&&n<=i.line}function Kt(n){let{start:e,end:t}=n;return e.line==t.line&&e.character==t.character}function Ot(n,e){let{start:t,end:i}=e;return ze(n,t)<0?-1:ze(n,i)>0?1:0}function ze(n,e){return n.line>e.line||e.line==n.line&&n.character>e.character?1:e.line==n.line&&n.character==e.character?0:-1}function KZ(n){return n.start.line==n.end.line}function sn(n,e){let t=e.split(/\r?\n/),i=t.length,r=t[i-1],o=i==1?n.character+e.length:r.length;return V.create(n.line+i-1,o)}var Pt=D(()=>{"use strict";ae()});function QZ(n){let{start:e,end:t}=n.range;return n.newText.endsWith(` +`)&&e.line==t.line&&e.character==0&&t.character==0?e.line-1:e.line}function xa(n){let{newText:e}=n,t=fw(n.range),i=t.end.line-t.start.line;return e.split(/\r?\n/).length-i-1}function fw(n){let e=n.start,t=n.end;return e.line>t.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:n}function $P(n,e){if(n.length<=1)return n;let t=n.length/2|0,i=n.slice(0,t),r=n.slice(t);$P(i,e),$P(r,e);let o=0,s=0,a=0;for(;o{let i=e.range.start.line-t.range.start.line;return i===0?e.range.start.character-t.range.start.character:i})}function VZ(n){let{changes:e,documentChanges:t}=n;return!(t&&t.length||e&&Object.keys(e).length)}function eJ(n,e){let{changes:t,documentChanges:i}=e;if(t){let r=t[n];return r?r.map(o=>o.range):void 0}else if(Array.isArray(i)){for(let r of i)if(ei.is(r)&&r.textDocument.uri==n)return r.edits.map(o=>o.range)}}function tJ(n,e){let t=[],i=r=>{var o;r&&!t.includes(r)&&((o=e[r])==null?void 0:o.needsConfirmation)&&t.push(r)};for(let r of n)ei.is(r)?r.edits.forEach(o=>{i(o.annotationId)}):i(r.annotationId);return t}function Tce(n,e){return!!(In.is(n)&&e.includes(n.annotationId))}function iJ(n,e){let t=[];return n.forEach(i=>{if(ei.is(i)){let r=i.edits.filter(o=>!Tce(o,e));r.length>0&&t.push({textDocument:i.textDocument,edits:r})}else e.includes(i.annotationId)||t.push(i)}),t}function nJ(n){let e;return ei.is(n)?In.is(n.edits[0])&&(e=n.edits[0].annotationId):e=n.annotationId,e}function rJ(n){if(n.documentChanges)return n.documentChanges;let e=[];for(let[t,i]of Object.entries($e(n.changes)))e.push({textDocument:{uri:t,version:null},edits:i});return e}function oJ(n,e){let t=[],i=n.end,r=i.line>0&&i.character==0,o;for(let s=0;s0){let h=t[t.length-1];h.newText=l,o=void 0;continue}o=void 0}l.includes("\r")&&(l=l.replace(/\r\n/g,` +`));let d=ze(u.end,i);if(d>0&&(u.end={line:i.line,character:i.character}),n.getText(u)!==l){if(d===0&&r&&!Kt(u)&&l.endsWith(` +`)){l=l.slice(0,-1);let h=n.lines[i.line-1];u.end=V.create(i.line-1,h.length)}else l.length==0&&(o=u.start);t.push({range:u,newText:l})}}return XP(t)}function sJ(n,e){if(te(e))return;if(e.length==1){let{start:s,end:a}=e[0].range,{lines:l}=n,u=l[s.line]??"",c=l[a.line]??"",d=u.substring(0,s.character)+e[0].newText+c.substring(a.character);return a.line>=l.length&&n.eol?d==""?[...l.slice(0,s.line)]:(d.endsWith(` +`)&&(d=d.slice(0,-1)),[...l.slice(0,s.line),...d.split(` +`)]):[...l.slice(0,s.line),...d.split(` +`),...l.slice(a.line+1)]}let t=n.getText(),i=0,r=[];for(let s of e){let a=n.offsetAt(s.range.start);if(ai&&r.push(t.substring(i,a)),s.newText.length&&r.push(s.newText),i=n.offsetAt(s.range.end)}r.push(t.substring(i));let o=r.join("");if(o!==t)return mY(o,n.eol)}function aJ(n,e){return e.map(t=>{let{start:i,end:r}=t.range,o=se(n[i.line]),s=rt(o,i.character),a=r.line==i.line?o:se(n[r.line]),l=rt(a,r.character),{newText:u}=t;return[u.length>0?u.split(` +`):[],i.line,s,r.line,l]})}function mw(n,e){let{range:t,newText:i}=e;if(ze(t.end,n)<=0){let r=i.split(` +`),o=r.length-(t.end.line-t.start.line)-1,s=n.character;if(t.end.line==n.line){let a=r[r.length-1].length;r.length>1?s=a+s-t.end.character:s=t.start.character+a+s-t.end.character}return{line:o,character:s-n.character}}return{line:0,character:0}}function bw(n,e){let{line:t,character:i}=n,{range:r,newText:o}=e,{end:s}=r,a=o.split(` +`),l=a.length-(s.line-r.start.line)-1,u=r.end.line-n.line;if(u>0)return{line:t,character:i};if(u<0)return{line:t+l,character:i};if(a.length>1){let d=a[a.length-1].length;return{line:t+l,character:d+i-s.character}}let c=r.start.character-r.end.character;return{line:t+l,character:c+o.length+i}}function yw(n,e){let t=V.create(n.line,n.character),i=!1;for(let r=e.length-1;r>=0;r--){let o=e[r];if(i){t.line+=xa(o);continue}ze(o.range.end,t)>0||(o.range.end.line==t.line?t=bw(t,o):(i=!0,t.line+=xa(o)))}return t}function GP(n,e){let t=0;for(let i of e){let r=fw(i.range);ze(r.end,n)<=0&&(t+=xa(i))}return t}function lJ(n,e,t){let i=n[0].range.start,r=n[n.length-1].range.end,o=e.length-r.line,s=(e[r.line]??"").length-r.character,a=t.length-o,l=(t[a]??"").length-s,u=kce(i,V.create(a,l),t);return Ye.replace(M.create(i,r),u)}function kce(n,e,t){if(n.line===e.line)return se(t[n.line]).slice(n.character,e.character);let i=[];for(let r=n.line;r<=e.line;r++){let o=t[r]??"";r===n.line?i.push(o.slice(n.character)):r===e.line?i.push(o.slice(0,e.character)):i.push(o)}return i.join(` +`)}var Pr=D(()=>{"use strict";ae();Se();Be();Pt();pe()});function KP(n){if(/^\d+$/.test(n))return parseInt(n,10);if(n.length>0)return n.charCodeAt(0)}function QP(n,e){return n=zP}function*Ece(n){if(Intl===void 0||typeof Intl.Segmenter!="function"){yield n;return}let e=[],t=new Intl.Segmenter("cn",{granularity:"word"}).segment(n);for(let i of t)i.isWordLike&&(yield i.segment);return e}function Ice(n){let e=[],t=0,i=0,r=n.length;for(;t{"use strict";ae();ee();Se();Be();pe();Pce=[[257,893],[895,902],[904,1369],[1376,1416],[1418,1469],[1471,1471],[1473,1474],[1476,1522],[1525,1547],[1549,1562],[1564,1566],[1568,1641],[1646,1747],[1749,1791],[1806,2403],[2406,2415],[2417,3571],[3573,3662],[3664,3673],[3676,3843],[3859,3897],[3902,3972],[3974,4169],[4176,4346],[4348,4960],[4969,5740],[5743,5759],[5761,5786],[5789,5866],[5870,5940],[5943,6099],[6109,6143],[6155,8191],[10240,10495],[10649,10711],[10716,10747],[10750,11775],[11904,12287],[12321,12335],[12337,12348],[12350,64829],[64832,65071],[65132,65279],[65296,65305],[65313,65338],[65345,65370],[65382,65535]],Rce=65535,_ce=/[\u4e00-\u9fa5]/,zP=19968;Yc=class{constructor(e=[],t=!1){this.ranges=e;this.wordChars=t}clone(){return new Yc(this.ranges.slice(),this.wordChars)}add(e,t){let i=0,r=0;if(t!=null&&tt)break;if(r++,st){t=a;break}}this.ranges.splice(i,r,[e,t])}exclude(e,t){if(t!=null&&tt)break;if(r++,at){o.push([t+1,l]);break}}r==0&&o.length==0||this.ranges.splice(i,r,...o)}flatten(){return this.ranges.reduce((e,t)=>e.concat(t),[])}includes(e){return e>256&&this.wordChars?kg(e,Pce):kg(e,this.ranges)}static fromKeywordOption(e){let t=new Yc;for(let i of Ice(e)){let r=i.length>1&&i.startsWith("^"),o=r?"exclude":"add";if(r&&(i=i.slice(1)),i==="@"&&!r)t.wordChars=!0,t[o](65,90),t[o](97,122),t[o](192,255);else if(i=="@-@")t[o]("@".charCodeAt(0));else if(i.length==1||/^\d+$/.test(i))t[o](KP(i));else if(i.includes("-")){let s=i.split("-",2),a=KP(s[0]),l=KP(s[1]);if(a===void 0||l===void 0)continue;t[o](a,l)}}return t}},Zc=class{constructor(e){this.ranges=Yc.fromKeywordOption(e)}addKeyword(e){this.ranges.add(e.codePointAt(0))}clone(){let e=new Zc("");return e.ranges=this.ranges.clone(),e}isKeywordCode(e){return e===32||e>Rce||uv(e)?!1:this.ranges.includes(e)}isKeywordChar(e){let t=e.charCodeAt(0);return this.isKeywordCode(t)}isKeyword(e){for(let t=0,i=e.length;ti&&(e=e.slice(0,i),o=i);for(let[s,a]of this.iterateWords(e)){if(a-s15){if(i&&i.isCancellationRequested)break;await cr(),a=Date.now()}for(let[d,h]of this.iterateWords(u)){let g=u.slice(d,h),f=En(s,g)?s[g]:[];f.push(M.create(l,d+c,l,h+c)),s[g]=f}}return s}}});var vw,uJ=D(()=>{"use strict";ae();vw=class{constructor(e,t,i){this._line=e,this._text=t,this._isLastLine=i}get lineNumber(){return this._line}get text(){return this._text}get range(){return M.create(this._line,0,this._line,this._text.length)}get rangeIncludingLineBreak(){return this._isLastLine?this.range:M.create(this._line,0,this._line+1,0)}get firstNonWhitespaceCharacterIndex(){return/^(\s*)/.exec(this._text)[1].length}get isEmptyOrWhitespace(){return this.firstNonWhitespaceCharacterIndex===this._text.length}}});function Lce(n,e){let t=[],i=0;for(let r of n)t.push(i),i+=r.length+1;return e&&t.push(i),t}var Jc,cJ=D(()=>{"use strict";ae();pe();uJ();Jc=class{constructor(e,t,i,r,o,s){this.uri=e;this.languageId=t;this.version=i;this.lines=r;this.bufnr=o;this.eol=s}get content(){return this._content||(this._content=this.lines.join(` +`)+(this.eol?` +`:"")),this._content}get length(){if(!this._content){let e=this.lines.reduce((t,i)=>t+i.length+1,0);return this.eol?e:e-1}return this._content.length}get end(){let e=this.lineCount-1;return this.eol?V.create(e,0):V.create(e,this.lines[e].length)}get lineCount(){return this.lines.length+(this.eol?1:0)}getText(e){if(e){let{start:t,end:i}=e;return t.line===i.line?t.character===i.character?"":se(this.lines[t.line]).substring(t.character,i.character):this.content.substring(this.offsetAt(e.start),this.offsetAt(e.end))}return this.content}lineAt(e){let t=V.is(e)?e.line:e;if(typeof t!="number"||t<0||t>=this.lineCount||Math.floor(t)!==t)throw new Error("Illegal value for `line`");return new vw(t,this.lines[t]??"",t===this.lineCount-1)}positionAt(e){e=Math.max(Math.min(e,this.content.length),0);let t=this.getLineOffsets(),i=0,r=t.length;if(r===0)return{line:0,character:e};for(;ie?r=s:i=s+1}let o=i-1;return{line:o,character:e-t[o]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this.content.length;if(e.line<0)return 0;let i=t[e.line],r=e.line+1{"use strict";hJ=require("buffer");ae();Je();Re();Jt();UP();ee();Xe();ce();Be();Pt();$();pe();Pr();VP();cJ();dJ=ge(150,15),mp=class{constructor(e,t,i,r){this.buffer=e;this.env=t;this.nvim=i;this.isIgnored=!1;this.eol=!0;this._disposed=!1;this._attached=!1;this._notAttachReason="";this._previewwindow=!1;this._winid=-1;this.disposables=[];this.lines=[];this._onDocumentChange=new p.Emitter;this.onDocumentChange=this._onDocumentChange.event;this.fireContentChanges=mt(()=>{this._fireContentChanges()},dJ),this.fetchContent=mt(()=>{this._fetchContent()},dJ),this.init(r)}get content(){return this.syncLines.join(` +`)+(this.eol?` +`:"")}get attached(){return this._attached}get textDocument(){return this._textDocument}get syncLines(){return this._textDocument.lines}get version(){return this._textDocument.version}get bufnr(){return this.buffer.id}get bufname(){return this._bufname}get filetype(){return this._filetype}get uri(){return this._uri}get isCommandLine(){return this.uri&&this.uri.endsWith("%5BCommand%20Line%5D")}get languageId(){let{_filetype:e}=this;return e.includes(".")?e.match(/(.*?)\./)[1]:e}get changedtick(){return this._changedtick}convertFiletype(e){switch(e){case"javascript.jsx":return"javascriptreact";case"typescript.jsx":case"typescript.tsx":return"typescriptreact";case"tex":return"latex";default:{let t=this.env.filetypeMap;return String(t[e]||e)}}}get schema(){return A.parse(this.uri).scheme}get lineCount(){return this.lines.length}get winid(){return this._winid}get previewwindow(){return this._previewwindow}init(e){let t=this.buftype=e.buftype;this._bufname=e.bufname,this._previewwindow=!!e.previewwindow,this._winid=e.winid,this.variables=$e(e.variables),this._changedtick=e.changedtick,this.eol=e.eol==1,this._uri=Fce(e.fullpath,this.bufnr,t,this.env.isCygwin),Array.isArray(e.lines)?(this.lines=e.lines,this._noFetch=!0,this._attached=!0,this.attach()):this._notAttachReason=Mce(t,this.variables.coc_enabled,e.size),this._filetype=this.convertFiletype(e.filetype),this.setIskeyword(e.iskeyword,e.lisp),this.createTextDocument(1,this.lines)}get notAttachReason(){return this._notAttachReason}attach(){if(ai)return;let e=this.lines;this.buffer.attach(!0).then(t=>{t||eR(this.bufnr)},t=>{eR(this.bufnr)}),this.buffer.listen("lines",(t,i,r,o,s)=>{if(i&&i>this._changedtick){if(this._changedtick=i,e=[...e.slice(0,r),...s,...o==-1?[]:e.slice(o)],e.length==0&&(e=[""]),this.lines=e,Ul(t.id),_.pumvisible)return;this.fireContentChanges()}},this.disposables),this.buffer.listen("detach",()=>{eR(this.bufnr)},this.disposables)}get dirty(){return this.lines!==this.syncLines}get hasChanged(){return this.dirty?!Fe(this.lines,this.syncLines):!1}_fireContentChanges(e){if(this.lines===this.syncLines)return;let t=this._textDocument,i=[];if(!e){let{cursor:s}=_,a;if(s.bufnr==this.bufnr){let l=this.lines[s.lnum-1]??"";a=V.create(s.lnum-1,Mt(l,s.col-1))}e=UZ(t.lines,this.lines,a,s.insert)}let r;e?(r=t.getText(e.range),i.push({range:e.range,text:e.newText,rangeLength:r.length})):r="";let o=this.createTextDocument(this.version+(e?1:0),this.lines);this._onDocumentChange.fire(Object.freeze({bufnr:this.bufnr,original:r,originalLines:t.lines,textDocument:{version:o.version,uri:this.uri},contentChanges:i}))}async applyEdits(e,t=!1,i=!1){if(Array.isArray(arguments[1])&&(e=arguments[1]),!this._attached||e.length===0)return;this._forceSync();let r=this.textDocument;e=oJ(r,e);let o=sJ(r,e);if(!o)return;let s=r.lines,a=ZZ(s,o,QZ(e[0])),l=a.start===a.end&&a.start===s.length,u=s.slice(a.start,a.end),c=[];e.length<200&&a.start!==a.end&&e[e.length-1].range.end.line0?` +`:""))}async changeLines(e){let t=[],i=this.lines.slice();for(let[r,o]of e)i[r]!=o&&(t.push([r,o]),i[r]=o);!t.length||(this.nvim.call("coc#ui#change_lines",[this.bufnr,t],!0),this.nvim.redrawVim(),this.lines=i,Ul(this.bufnr),this._forceSync())}_forceSync(){this.fireContentChanges.clear(),this._fireContentChanges()}forceSync(){}getOffset(e,t){return this.textDocument.offsetAt({line:e-1,character:t})}isWord(e){return this.chars.isKeyword(e)}getStartWord(e){let t=0;for(;t=0;){let u=o[a-1];if(!u||!r.isKeywordChar(u))break;a=a-1}for(;l<=o.length;){let u=o[l];if(!u||!r.isKeywordChar(u))break;l=l+1}return M.create(e.line,a,e.line,l)}createTextDocument(e,t){let{uri:i,languageId:r,eol:o}=this;return this._textDocument=new Jc(i,r,e,t,this.bufnr,o)}getSymbolRanges(e){let{version:t,filetype:i,uri:r}=this,o=new Jc(r,i,t,this.lines,this.bufnr,this.eol),s=[],a=o.getText(),l="";for(let u=0,c=a.length;u0&&!h&&l==e&&s.push(M.create(o.positionAt(u-l.length),o.positionAt(u))),h||(l="")}return s}fixStartcol(e,t){let i=this.getline(e.line);if(!i)return 0;let{character:r}=e,o=i.slice(0,r),s=de(o),{chars:a}=this;for(let l=o.length-1;l>=0;l--){let u=o[l];if(!a.isKeywordChar(u)&&!t.includes(u))break;s=s-de(u)}return s}addHighlights(e,t,i,r={}){let{start:o,end:s}=i;if(!Kt(i))for(let a=o.line;a<=s.line;a++){let l=this.getline(a,!1),u=a==o.line?rt(l,o.character):0,c=a==s.line?rt(l,s.character):hJ.Buffer.byteLength(l);u>=c||e.push(Object.assign({hlGroup:t,lnum:a,colStart:u,colEnd:c},r))}}getline(e,t=!0){return t?this.lines[e]||"":this.syncLines[e]||""}getLines(e,t){return this.lines.slice(e??0,t??this.lines.length)}getDocumentContent(){let e=this.lines.join(` +`);return this.eol?e+` +`:e}getVar(e,t){let i=this.variables[`coc_${e}`];return i===void 0?t:i}getPosition(e,t){let i=this.getline(e-1);if(!i||t==0)return{line:e-1,character:0};let r=zt(i,0,t-1);return{line:e-1,character:r.length}}setFiletype(e){this._filetype=this.convertFiletype(e);let t=this._textDocument.lines;this._textDocument=new Jc(this.uri,this.languageId,1,t,this.bufnr,this.eol)}setIskeyword(e,t){let i=this.chars=new Zc(e),r=this.getVar("additional_keywords",[]);if(t&&i.addKeyword("-"),r&&Array.isArray(r))for(let o of r)i.addKeyword(o)}detach(){Y(this.disposables),!this._disposed&&(this._disposed=!0,this._attached=!1,this.lines=[],this.fetchContent.clear(),this.fireContentChanges.clear(),this._onDocumentChange.dispose())}async synchronize(){if(!this.attached)return;let{changedtick:e}=this;await this.patchChange(),e!=this.changedtick&&await Zi(50)}async patchChange(e){if(!!this._attached)if(ai)if(e){let t=await this.nvim.call("coc#util#get_changeinfo",[this.bufnr]);if(!t||t.changedtick{"use strict";ww.exports=Nce;ww.exports.format=pJ;ww.exports.parse=fJ;var jce=/\B(?=(\d{3})+(?!\d))/g,Oce=/(?:\.0*|(\.[^0]+)0+)$/,Ca={b:1,kb:1<<10,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},Ace=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function Nce(n,e){return typeof n=="string"?fJ(n):typeof n=="number"?pJ(n,e):null}function pJ(n,e){if(!Number.isFinite(n))return null;var t=Math.abs(n),i=e&&e.thousandsSeparator||"",r=e&&e.unitSeparator||"",o=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,s=Boolean(e&&e.fixedDecimals),a=e&&e.unit||"";(!a||!Ca[a.toLowerCase()])&&(t>=Ca.pb?a="PB":t>=Ca.tb?a="TB":t>=Ca.gb?a="GB":t>=Ca.mb?a="MB":t>=Ca.kb?a="KB":a="B");var l=n/Ca[a.toLowerCase()],u=l.toFixed(o);return s||(u=u.replace(Oce,"$1")),i&&(u=u.split(".").map(function(c,d){return d===0?c.replace(jce,i):c}).join(".")),u+r+a}function fJ(n){if(typeof n=="number"&&!isNaN(n))return n;if(typeof n!="string")return null;var e=Ace.exec(n),t,i="b";return e?(t=parseFloat(e[1]),i=e[4].toLowerCase()):(t=parseInt(n,10),i="b"),isNaN(t)?null:Math.floor(Ca[i]*t)}});var xw,Hce,bp,bJ=D(()=>{"use strict";ae();Je();Re();Ce();gJ();ee();at();ce();Il();$();pe();xw=J("core-documents"),Hce=ji(process.cwd()),bp=class{constructor(e,t){this.configurations=e;this.workspaceFolder=t;this._attached=!1;this._currentResolve=!1;this.disposables=[];this.creating=new Map;this.buffers=new Map;this.resolves=[];this._onDidOpenTextDocument=new p.Emitter;this._onDidCloseDocument=new p.Emitter;this._onDidChangeDocument=new p.Emitter;this._onDidSaveDocument=new p.Emitter;this._onWillSaveDocument=new p.Emitter;this.onDidOpenTextDocument=this._onDidOpenTextDocument.event;this.onDidCloseDocument=this._onDidCloseDocument.event;this.onDidChangeDocument=this._onDidChangeDocument.event;this.onDidSaveTextDocument=this._onDidSaveDocument.event;this.onWillSaveTextDocument=this._onWillSaveDocument.event;this._cwd=Hce,this.getConfiguration(),this.configurations.onDidChange(this.getConfiguration,this,this.disposables)}async attach(e,t){if(this._attached)return;this.nvim=e,this._env=t,this._attached=!0;let{bufnrs:i,bufnr:r}=await this.nvim.call("coc#util#all_state");this._bufnr=r,await Promise.all(i.map(s=>this.createDocument(s))),_.on("BufDetach",this.onBufDetach,this,this.disposables),_.on("BufRename",async s=>{this.detachBuffer(s),await this.createDocument(s)},null,this.disposables),_.on("DirChanged",s=>{this._cwd=ji(s)},null,this.disposables);let o=s=>{this._bufnr=s,this.createDocument(s)};_.on("CursorMoved",o,null,this.disposables),_.on("CursorMovedI",o,null,this.disposables),_.on("BufUnload",this.onBufUnload,this,this.disposables),_.on("BufEnter",this.onBufEnter,this,this.disposables),_.on("BufCreate",this.onBufCreate,this,this.disposables),_.on("TermOpen",this.onBufCreate,this,this.disposables),_.on("BufWritePost",this.onBufWritePost,this,this.disposables),_.on("BufWritePre",this.onBufWritePre,this,this.disposables),_.on("FileType",this.onFileTypeChange,this,this.disposables),_.on("BufEnter",s=>{this.createDocument(s)},null,this.disposables),this._env.isVim&&["TextChangedP","TextChangedI","TextChanged"].forEach(s=>{_.on(s,(a,l)=>{let u=this.buffers.get(a);u&&u.attached&&u.onTextChange(s,l)},null,this.disposables)})}getConfiguration(e){if(!e||e.affectsConfiguration("coc.preferences")){let t=this.configurations.initialConfiguration.get("coc.preferences"),i=mJ();this.config={maxFileSize:i.parse(t.maxFileSize),willSaveHandlerTimeout:ye(t.willSaveHandlerTimeout,500),useQuickfixForLocations:t.useQuickfixForLocations}}}get bufnr(){return this._bufnr}get root(){return this._root}get cwd(){return this._cwd}get documents(){return Array.from(this.buffers.values()).filter(e=>e.attached)}async getCurrentUri(){let e=await this.nvim.call("bufnr",["%"]),t=this.getDocument(e);return t?t.uri:void 0}*attached(e){for(let t of this.buffers.values())!t.attached||e&&t.schema!==e||(yield t)}get bufnrs(){return this.buffers.keys()}detach(){this._attached=!1;for(let e of this.buffers.keys())this.onBufUnload(e)}resolveRoot(e,t=!1){let i=this.getDocument(this.bufnr),r;if(i&&i.schema=="file"){let o=R.dirname(A.parse(i.uri).fsPath);r=Ag(o,e,this.cwd)}else r=Ag(this.cwd,e);if(t&&!r)throw new Error("Required root pattern not resolved.");return r}get textDocuments(){let e=[];for(let t of this.buffers.values())t.attached&&e.push(t.textDocument);return e}getDocument(e,t=eo||El){if(typeof e=="number")return this.buffers.get(e);let i=A.parse(e);e=i.toString();let r=i.scheme==="file";for(let o of this.buffers.values())if(o.uri===e||r&&t&&o.uri.toLowerCase()===e.toLowerCase())return o;return null}expand(e){if(e.startsWith("~")&&(e=Et.homedir()+e.slice(1)),e.includes("$")){let t=this.getDocument(this.bufnr),i=t?A.parse(t.uri).fsPath:"",r=this._root||this._cwd;e=e.replace(/\$\{(.*?)\}/g,(o,s)=>{if(s.startsWith("env:")){let a=s.split(":")[1];return a?process.env[a]:""}switch(s){case"userHome":return Et.homedir();case"workspace":case"workspaceRoot":case"workspaceFolder":return r;case"workspaceFolderBasename":return R.basename(r);case"cwd":return this._cwd;case"file":return i;case"fileDirname":return i?R.dirname(i):"";case"fileExtname":return i?R.extname(i):"";case"fileBasename":return i?R.basename(i):"";case"fileBasenameNoExtension":{let a=i?R.basename(i):"";return a?a.slice(0,a.length-R.extname(a).length):""}default:return o}}),e=e.replace(/\$[\w]+/g,o=>o=="$HOME"?Et.homedir():process.env[o.slice(1)]||o)}return e}get document(){return this._currentResolve?new Promise(e=>{this.resolves.push(e)}):(this._currentResolve=!0,new Promise(e=>{this.nvim.eval(`coc#util#get_bufoptions(bufnr("%"),${this.config.maxFileSize})`).then(t=>{let i;t!=null&&(this.creating.delete(t.bufnr),i=this._createDocument(t)),this.resolveCurrent(i),e(i),this._currentResolve=!1},()=>{e(void 0),this._currentResolve=!1})}))}resolveCurrent(e){if(this.resolves.length>0)for(;this.resolves.length;){let t=this.resolves.pop();t&&t(e)}}get uri(){let{bufnr:e}=this;if(e){let t=this.getDocument(e);if(t)return t.uri}return null}get filetypes(){let e=new Set;for(let t of this.attached())e.add(t.filetype);return e}getLanguageId(e){let t=R.extname(e);if(!t)return"";for(let i of this.attached()){let r=A.parse(i.uri).fsPath;if(R.extname(r)==t)return i.languageId}return""}async getLines(e){let t=this.getDocument(e);if(t)return t.textDocument.lines;let i=A.parse(e);if(i.scheme!=="file")return[];try{return(await Ng(i.fsPath,"utf8")).split(/\r?\n/)}catch{return[]}}get languageIds(){let e=new Set;for(let t of this.attached())e.add(t.languageId);return e}async getFormatOptions(e){let t;e&&(t=this.getDocument(e));let i=t?t.bufnr:0,r=await this.nvim.call("coc#util#get_format_opts",[i]),o={tabSize:r.tabsize,insertSpaces:r.expandtab==1};return o.insertFinalNewline=r.insertFinalNewline==1,r.trimTrailingWhitespace&&(o.trimTrailingWhitespace=!0),r.trimFinalNewlines&&(o.trimFinalNewlines=!0),o}async createDocument(e){let t=this.buffers.get(e);if(t)return t;if(this.creating.has(e))return await this.creating.get(e);let i=new Promise(r=>{this.nvim.call("coc#util#get_bufoptions",[e,this.config.maxFileSize]).then(o=>{if(!this.creating.has(e)){r(void 0);return}if(this.creating.delete(e),!o){r(void 0);return}t=this._createDocument(o),r(t)},()=>{this.creating.delete(e),r(void 0)})});return this.creating.set(e,i),await i}async onBufCreate(e){this.onBufUnload(e),await this.createDocument(e)}_createDocument(e){let{bufnr:t}=e;if(this.buffers.has(t))return this.buffers.get(t);let i=this.nvim.createBuffer(t),r=new mp(i,this._env,this.nvim,e);if(e.size>this.config.maxFileSize&&xw.warn(`buffer ${e.bufnr} size exceed maxFileSize ${this.config.maxFileSize}, not attached.`),this.buffers.set(t,r),r.attached){if(r.schema=="file"){this.configurations.locateFolderConfigution(r.uri);let o=this.workspaceFolder.resolveRoot(r,this._cwd,!0,this.expand.bind(this));o&&t==this._bufnr&&this.changeRoot(o)}this._onDidOpenTextDocument.fire(r.textDocument),r.onDocumentChange(o=>this._onDidChangeDocument.fire(o))}return xw.debug("buffer created",t,r.attached,r.uri),r}onBufEnter(e){this._bufnr=e;let t=this.buffers.get(e);if(t){let i=this.workspaceFolder.getWorkspaceFolder(A.parse(t.uri));i&&(this._root=A.parse(i.uri).fsPath)}}onBufUnload(e){this.creating.delete(e),this.onBufDetach(e,!1)}async onBufDetach(e,t=!0){this.detachBuffer(e),t&&await this.nvim.call("bufloaded",[e])&&await this.createDocument(e)}detachBuffer(e){let t=this.buffers.get(e);!t||(xw.debug("document detach",e,t.uri),this._onDidCloseDocument.fire(t.textDocument),this.buffers.delete(e),t.detach())}async onBufWritePost(e,t){let i=this.buffers.get(e);i&&(i.changedtick!=t&&await i.patchChange(),this._onDidSaveDocument.fire(i.textDocument))}async onBufWritePre(e,t,i){let r=this.buffers.get(e);if(!r||!r.attached||r.bufname!=t&&(this.detachBuffer(e),r=await this.createDocument(e),!r.attached))return;r.changedtick!=i?await r.synchronize():await r.patchChange();let o=!0,s=[],a={document:r.textDocument,reason:p.TextDocumentSaveReason.Manual,waitUntil:u=>{o?s.push(u):this.nvim.echoError("waitUntil can't be used in async manner, check log for details")}};this._onWillSaveDocument.fire(a),o=!1;let l=s.length;if(l){let c=await new Promise(d=>{let h=this.config.willSaveHandlerTimeout,g=setTimeout(()=>{this.nvim.outWriteLine(`Will save handler timeout after ${h}ms`),d(void 0)},h),f=0,m=!1;for(let y of s){let w=x=>{m||(m=!0,clearTimeout(g),d(x))};y.then(x=>{if(Array.isArray(x)&&x.length&&Ye.is(x[0]))return w(x);f=f+1,f==l&&w(void 0)},x=>{xw.error("Error on will save handler:",x),f=f+1,f==l&&w(void 0)})}});c&&await r.applyEdits(c,!1,this.bufnr===r.bufnr)}}onFileTypeChange(e,t){let i=this.getDocument(t);!i||i.convertFiletype(e)==i.filetype||(this._onDidCloseDocument.fire(i.textDocument),i.setFiletype(e),this._onDidOpenTextDocument.fire(i.textDocument))}async getQuickfixList(e){let t={},i=e.reduce((r,o)=>{let s=A.parse(o.uri);return s.scheme=="file"&&!r.includes(s.fsPath)&&!this.getDocument(o.uri)&&r.push(s.fsPath),r},[]);return await Promise.all(i.map(r=>new Promise(o=>{Ng(r,"utf8").then(s=>{t[r]=s.split(/\r?\n/),o(void 0)},()=>{o()})}))),await Promise.all(e.map(r=>{let{uri:o,range:s}=r,{fsPath:a}=A.parse(o),l,u=t[a];return u&&(l=u[s.start.line]),this.getQuickfixItem(r,l)}))}async showLocations(e){let{nvim:t}=this,i=await this.getQuickfixList(e);if(this.config.useQuickfixForLocations){let r=await t.getVar("coc_quickfix_open_command");typeof r!="string"&&(r=i.length<10?`copen ${i.length}`:"copen"),t.pauseNotification(),t.call("setqflist",[i],!0),t.command(r,!0),t.resumeNotification(!1,!0)}else await t.setVar("coc_jump_locations",i),this._env.locationlist?t.command("CocList --normal --auto-preview location",!0):t.call("coc#util#do_autocmd",["CocLocationsChange"],!0)}async getQuickfixItem(e,t,i="",r){let o=e.targetRange;br.is(e)&&(e=Ze.create(e.targetUri,e.targetRange));let s=this.getDocument(e.uri),{uri:a,range:l}=e,{start:u,end:c}=l,d=A.parse(a);!t&&d.scheme=="file"&&(t=await this.getLine(a,u.line));let h=u.line==c.line?t:await this.getLine(a,c.line),g={uri:a,filename:d.scheme=="file"?d.fsPath:a,lnum:u.line+1,end_lnum:c.line+1,col:t?rt(t,u.character)+1:u.character+1,end_col:h?rt(h,c.character)+1:c.character+1,text:t||"",range:l};return o&&(g.targetRange=o),r&&(g.module=r),i&&(g.type=i),s&&(g.bufnr=s.bufnr),g}async getLine(e,t){let i=this.getDocument(e);if(i&&i.attached)return i.getline(t)||"";if(!e.startsWith("file:"))return"";let r=A.parse(e).fsPath;return F.existsSync(r)?await BY(r,t):""}async readFile(e){let t=this.getDocument(e);if(t)return await t.patchChange(),t.content;let i=A.parse(e);return i.scheme!="file"?"":(await this.nvim.call("readfile",[i.fsPath])).join(` +`)+` +`}reset(){this.creating.clear();for(let e of this.buffers.keys())this.onBufUnload(e);this.buffers.clear(),this.changeRoot(process.cwd())}changeRoot(e){this._root=ji(e)}dispose(){for(let e of this.buffers.keys())this.onBufUnload(e);this._attached=!1,this.buffers.clear(),Y(this.disposables)}}});function qce(n,e){let{document:t,uri:i}=n;if(t.bufnr!=e.bufnr)return!1;let r=A.parse(i);return r.scheme==="file"?!li(r.fsPath,e.fullpath):!1}var Bce,yp,yJ=D(()=>{"use strict";ae();Je();Re();Ce();at();$();Bce=J("core-editors");yp=class{constructor(e){this.documents=e;this.disposables=[];this.editors=new Map;this.tabIds=new Set;this._onDidTabClose=new p.Emitter;this._onDidChangeActiveTextEditor=new p.Emitter;this._onDidChangeVisibleTextEditors=new p.Emitter;this.onDidTabClose=this._onDidTabClose.event;this.onDidChangeActiveTextEditor=this._onDidChangeActiveTextEditor.event;this.onDidChangeVisibleTextEditors=this._onDidChangeVisibleTextEditors.event}get activeTextEditor(){return this.editors.get(this.winid)}get visibleTextEditors(){return Array.from(this.editors.values())}isVisible(e){for(let t of this.editors.values())if(t.bufnr==e)return!0;return!1}onChangeCurrent(e){let t=e.id;t!==this.previousId&&(this.previousId=t,this._onDidChangeActiveTextEditor.fire(e))}async attach(e){this.nvim=e;let[t,i]=await e.eval("[win_getid(),coc#util#editor_infos()]");this.winid=t,await Promise.allSettled(i.map(r=>this.createTextEditor(r.winid))),_.on("BufUnload",r=>{for(let[o,s]of this.editors.entries())r==s.bufnr&&this.editors.delete(o)},null,this.disposables),_.on("CursorHold",this.checkEditors,this,this.disposables),_.on("TabNew",r=>{this.tabIds.add(r)},null,this.disposables),_.on("TabClosed",this.checkTabs,this,this.disposables),_.on("WinEnter",r=>{this.winid=r;let o=this.editors.get(r);o&&this.onChangeCurrent(o)},null,this.disposables),_.on("WinClosed",r=>{this.editors.has(r)&&(this.editors.delete(r),this._onDidChangeVisibleTextEditors.fire(this.visibleTextEditors))},null,this.disposables),_.on("BufWinEnter",async(r,o)=>{this.winid=o,await this.createTextEditor(o)&&this._onDidChangeVisibleTextEditors.fire(this.visibleTextEditors)},null,this.disposables)}checkTabs(e){let t=!1;for(let i of this.editors.values())e.includes(i.tabpageid)||(t=!0,this.editors.delete(i.winid));for(let i of Array.from(this.tabIds))e.includes(i)||this._onDidTabClose.fire(i);this.tabIds=new Set(e),t&&this._onDidChangeVisibleTextEditors.fire(this.visibleTextEditors)}checkUnloadedBuffers(e){for(let t of this.documents.bufnrs)e.includes(t)||_.fire("BufUnload",[t])}async checkEditors(){let[e,t,i]=await this.nvim.eval("[win_getid(),coc#util#get_loaded_bufs(),coc#util#editor_infos()]");this.winid=e,this.checkUnloadedBuffers(t);let r=!1,o=new Set;for(let s of i){let a=this.editors.get(s.winid),l=!1;a?qce(a,s)?(await _.fire("BufRename",[s.bufnr]),l=!0):(a.document.bufnr!=s.bufnr||a.tabpageid!=s.tabid)&&(l=!0):l=!0,l&&(await this.createTextEditor(s.winid),r=!0),o.add(s.winid)}this.cleanupEditors(o)&&(r=!0),r&&this._onDidChangeVisibleTextEditors.fire(this.visibleTextEditors)}cleanupEditors(e){let t=!1;for(let i of Array.from(this.editors.keys()))e.has(i)||(t=!0,this.editors.delete(i));return t}async createTextEditor(e){let{documents:t,nvim:i}=this,r=await i.call("coc#util#get_editoroption",[e]);if(!r)return!1;this.tabIds.add(r.tabpageid);let o=t.getDocument(r.bufnr);if(o&&o.attached){let s=this.fromOptions(r);return this.editors.set(e,s),e==this.winid&&this.onChangeCurrent(s),Bce.debug("editor created winid & bufnr & tabpageid: ",e,r.bufnr,r.tabpageid),!0}else this.editors.delete(r.winid);return!1}fromOptions(e){let{visibleRanges:t,bufnr:i}=e,r=this.documents.getDocument(i);return{id:`${e.tabpageid}-${e.winid}-${r.uri}`,tabpageid:e.tabpageid,winid:e.winid,winnr:e.winnr,uri:r.uri,bufnr:r.bufnr,document:r,visibleRanges:t.map(o=>M.create(o[0]-1,0,o[1],0)),options:{tabSize:e.tabSize,insertSpaces:!!e.insertSpaces}}}}});var Ki,Sa=D(()=>{"use strict";Oc();pe();Ki=class{constructor(){this.lines=[];this._highlights=[]}addLine(e,t){if(e.includes(` +`)){for(let i of e.split(/\r?\n/))this.addLine(i,t);return}if(t&&this._highlights.push({lnum:this.lines.length,colStart:e.match(/^\s*/)[0].length,colEnd:de(e),hlGroup:t}),e.includes("\x1B")){let i=jc(e);for(let r of i.highlights){let{span:o,hlGroup:s}=r;this._highlights.push({lnum:this.lines.length,colStart:o[0],colEnd:o[1],hlGroup:s})}this.lines.push(i.line)}else this.lines.push(e)}addLines(e){this.lines.push(...e)}addTexts(e){let t=this.lines.length,i="";for(let r of e){let o=de(i);r.hlGroup&&this._highlights.push({lnum:t,colStart:o,colEnd:o+de(r.text),hlGroup:r.hlGroup}),i+=r.text}this.lines.push(i)}addText(e,t){if(!e)return;let{lines:i}=this,r=i[i.length-1]||"";if(e.includes(` +`)){let o=e.split(` +`);this.addText(o[0],t);for(let s of o.slice(1))this.addLine(s,t);return}if(t){let o=de(r);this._highlights.push({lnum:i.length?i.length-1:0,colStart:o,colEnd:o+de(e),hlGroup:t})}i.length?i[i.length-1]=`${r}${e}`:i.push(e)}get length(){return this.lines.length}getline(e){return this.lines[e]||""}get highlights(){return this._highlights}get content(){return this.lines.join(` +`)}render(e,t=0,i=-1){e.setLines(this.lines,{start:t,end:i,strictIndexing:!1},!0);for(let r of this._highlights)e.addHighlight({hlGroup:r.hlGroup,colStart:r.colStart,colEnd:r.colEnd,line:t+r.lnum,srcId:-1})}}});function Yce(n,e){if(typeof n.lnum!="number")return;let t=n.lnum;if(e){let i=XP(e.edits);t=yw(V.create(t-1,0),i).line+1}return t}function Zce(n,e){var i;let t=new Map;for(let r of n){let o=nJ(r)??null,s=o?(i=e[o])==null?void 0:i.label:null,a=t.get(s);a?a.push(r):t.set(s,[r])}return t}var Wce,vp,vJ=D(()=>{"use strict";ae();Je();Re();ee();Se();at();ce();Pr();Sa();Wce=0,vp=class{constructor(e,t){this.nvim=e;this.keymaps=t;this.disposables=[];this.items=[];this.renameMap=new Map;_.on("BufUnload",i=>{i==this.bufnr&&this.dispose()},null,this.disposables)}addFile(e,t,i){this.items.push({index:t.length,filepath:e,lnum:i})}async show(e){let{nvim:t}=this,i=Wce++;t.pauseNotification(),t.command(`tabe +setl\\ buftype=nofile CocWorkspaceEdit${i}`,!0),t.command("setl bufhidden=wipe nolist",!0),t.command("setl nobuflisted wrap undolevels=-1 filetype=cocedits noswapfile",!0),await t.resumeNotification(!0);let r=await t.buffer,o=await t.call("getcwd");this.bufnr=r.id;let s=d=>{let h=A.parse(d).fsPath;return pt(o,h,!0)?R.relative(o,h):h},a=d=>R.isAbsolute(d)?d:R.join(o,d),l=new Ki,u=le(e.edit.documentChanges),c=Zce(u,e.edit.changeAnnotations??{});for(let[d,h]of c.entries()){d&&(l.addLine(d,"MoreMsg"),l.addLine(""));for(let g of h)if(ei.is(g)){let f=e.changes[g.textDocument.uri],m=s(g.textDocument.uri);l.addTexts([{text:"Change",hlGroup:"Title"},{text:" "},{text:m,hlGroup:"Directory"},{text:`:${f.lnum}`,hlGroup:"LineNr"}]),this.addFile(m,l,f.lnum),l.addLine(""),this.addChangedLines(l,f,m,f.lnum),l.addLine("")}else if(Gn.is(g)||Fn.is(g)){let f=Fn.is(g)?"Delete":"Create",m=s(g.uri);l.addTexts([{text:f,hlGroup:"Title"},{text:" "},{text:m,hlGroup:"Directory"}]),this.addFile(m,l),l.addLine("")}else if(zn.is(g)){let f=s(g.oldUri),m=s(g.newUri);l.addTexts([{text:"Rename",hlGroup:"Title"},{text:" "},{text:f,hlGroup:"Directory"},{text:"->",hlGroup:"Comment"},{text:m,hlGroup:"Directory"}]),this.renameMap.set(f,m),this.addFile(m,l),l.addLine("")}}t.pauseNotification(),l.render(r),r.setOption("modifiable",!1,!0),await t.resumeNotification(!0),this.disposables.push(this.keymaps.registerLocalKeymap(r.id,"n","",async()=>{let d=await t.call("line","."),h=await t.call("col","."),g;for(let C=this.items.length-1;C>=0;C--){let P=this.items[C];if(d>=P.index){g=P;break}}if(!g)return;let f=A.file(a(g.filepath)).toString(),m=this.renameMap.has(g.filepath)?this.renameMap.get(g.filepath):g.filepath;await t.call("coc#util#open_file",["tab drop",a(m)]);let w=le(e.edit.documentChanges).find(C=>ei.is(C)&&C.textDocument.uri==f),x=Yce(g,w);x!==void 0&&await t.call("cursor",[x,h]),t.redrawVim()},!0)),this.disposables.push(this.keymaps.registerLocalKeymap(r.id,"n","",async()=>{t.command("bwipeout!",!0)},!0))}addChangedLines(e,t,i,r){let o=bi(t.oldLines.join(` +`),t.newLines.join(` +`));for(let s=0;s{"use strict";ae();Je();Re();Ce();vJ();Ti();at();ce();$();pe();Pr();Jce=J("core-files"),wp=class{constructor(e,t,i,r){this.documents=e;this.configurations=t;this.workspaceFolderControl=i;this.keymaps=r;this.operationTimeout=500;this._onDidCreateFiles=new p.Emitter;this._onDidRenameFiles=new p.Emitter;this._onDidDeleteFiles=new p.Emitter;this._onWillCreateFiles=new p.Emitter;this._onWillRenameFiles=new p.Emitter;this._onWillDeleteFiles=new p.Emitter;this.onDidCreateFiles=this._onDidCreateFiles.event;this.onDidRenameFiles=this._onDidRenameFiles.event;this.onDidDeleteFiles=this._onDidDeleteFiles.event;this.onWillCreateFiles=this._onWillCreateFiles.event;this.onWillRenameFiles=this._onWillRenameFiles.event;this.onWillDeleteFiles=this._onWillDeleteFiles.event}attach(e,t,i){this.nvim=e,this.env=t,this.window=i}async openTextDocument(e){e=typeof e=="string"?A.file(e):e;let t=this.documents.getDocument(e.toString());if(t)return t;let i=e.scheme;if(i=="file"){if(!F.existsSync(e.fsPath))throw jy(e.fsPath);F.accessSync(e.fsPath,F.constants.R_OK)}return i=="untitled"?(await this.nvim.call("coc#util#open_file",["tab drop",e.path]),await this.documents.document):await this.loadResource(e.toString(),null)}async jumpTo(e,t,i){i||(i=this.configurations.initialConfiguration.get("coc.preferences.jumpCommand","edit"));let{nvim:r}=this,o=e instanceof A?e:A.parse(e),s=this.documents.getDocument(o.with({fragment:""}).toString()),a=s?s.bufnr:-1;if(!t&&o.scheme==="file"&&o.fragment){let l=o.fragment.split(","),u=parseInt(l[0],10);if(!isNaN(u)){let c=l.length>0&&/^\d+$/.test(l[1])?parseInt(l[1],10):void 0;t=V.create(u-1,c==null?0:c-1)}}if(a!=-1&&i=="edit"){if(r.pauseNotification(),r.command("silent! normal! m'",!0),r.command(`buffer ${a}`,!0),r.command("if &filetype ==# '' | filetype detect | endif",!0),t){let l=s.getline(t.line),u=rt(l,t.character)+1;r.call("cursor",[t.line+1,u],!0)}await r.resumeNotification(!0)}else{let{fsPath:l,scheme:u}=o,c=t==null?null:[t.line,t.character];if(u=="file"){let d=ji(l);await this.nvim.call("coc#util#jump",[i,d,c])}else await this.nvim.call("coc#util#jump",[i,e.toString(),c])}}async openResource(e){let{nvim:t}=this,i=A.parse(e);if(/^https?/.test(i.scheme)){await t.call("coc#ui#open_url",e);return}await this.jumpTo(e),await this.documents.document}async loadResource(e,t){let i=this.documents.getDocument(e);if(i)return i;t===void 0&&(t=this.configurations.getConfiguration("workspace").get("openResourceCommand","tab drop"));let r=A.parse(e),o=r.scheme==="file"?r.fsPath:e,s;if(t){let a=await this.nvim.call("win_getid");s=await this.nvim.call("coc#util#open_file",[t,o]),await this.nvim.call("win_gotoid",[a])}else s=(await this.nvim.call("coc#ui#open_files",[[o]]))[0];return await this.documents.createDocument(s)}async loadResources(e){let{documents:t}=this,i=e.map(o=>{let s=A.parse(o);return s.scheme=="file"?s.fsPath:o}),r=await this.nvim.call("coc#ui#open_files",[i]);return await Promise.all(r.map(o=>t.createDocument(o)))}async createFile(e,t={},i){let{nvim:r}=this,o=F.existsSync(e);if(o&&!t.overwrite&&!t.ignoreIfExists)throw jD(e);if(!o||t.overwrite){let s=new p.CancellationTokenSource;await this.fireWaitUntilEvent(this._onWillCreateFiles,{files:[A.file(e)],token:s.token},i),s.cancel();let a=R.dirname(e);if(!F.existsSync(a)){let c,d=a;for(;![".","/",R.parse(a).root].includes(d);){if(F.existsSync(R.dirname(d))){c=d;break}d=R.dirname(d)}F.mkdirSync(a,{recursive:!0}),i&&i.push(()=>{F.rmSync(c,{force:!0,recursive:!0})})}F.writeFileSync(e,"","utf8"),i&&i.push(()=>{F.rmSync(e,{force:!0,recursive:!0})});let u=(await this.loadResource(e)).bufnr;i&&i.push(()=>(_.fire("BufUnload",[u]),r.command(`silent! bd! ${u}`))),this._onDidCreateFiles.fire({files:[A.file(e)]})}}async deleteFile(e,t={},i){let{ignoreIfNotExists:r,recursive:o}=t,s=await jn(e),a=s&&s.isDirectory();if(!s&&!r)throw jy(e);if(s==null)return;let l=A.file(e);if(await this.fireWaitUntilEvent(this._onWillDeleteFiles,{files:[l]},i),!a){let d=await this.nvim.call("bufnr",[e]);d&&(_.fire("BufUnload",[d]),await this.nvim.command(`silent! bwipeout ${d}`),i&&i.push(()=>this.loadResource(l.toString())))}let u=R.join(Et.tmpdir(),"coc-"+process.pid);F.mkdirSync(u,{recursive:!0});let c=Vb.createHash("md5").update(e).digest("hex");if(a&&o){let d=R.join(u,c),h=R.dirname(e);F.renameSync(e,d),i&&i.push(async()=>{F.mkdirSync(h,{recursive:!0}),F.renameSync(d,e)})}else if(a)F.rmdirSync(e),i&&i.push(()=>{F.mkdirSync(e)});else{let d=R.join(u,c),h=R.dirname(e);F.renameSync(e,d),i&&i.push(()=>{F.mkdirSync(h,{recursive:!0}),F.renameSync(d,e)})}this._onDidDeleteFiles.fire({files:[l]})}async renameFile(e,t,i={},r){let{nvim:o}=this,{overwrite:s,ignoreIfExists:a}=i;if(t===e)return;let l=F.existsSync(t);if(l&&a&&!s)return;if(l&&!s)throw jD(t);let u=await jn(e),c=u&&u.isDirectory()?0:await o.call("bufloaded",[e]);if(!c&&!u)throw jy(e);let d={newUri:A.parse(t),oldUri:A.parse(e)};if(i.skipEvent||await this.fireWaitUntilEvent(this._onWillRenameFiles,{files:[d]},r),c){let h=await o.call("coc#ui#rename_file",[e,t,u!=null]);await this.documents.onBufCreate(h)}else{if(u.isDirectory())for(let h of this.documents.attached("file")){let g=A.parse(h.uri);if(pt(e,g.fsPath,!1)){let f=g.fsPath.replace(e,t),m=await o.call("coc#ui#rename_file",[g.fsPath,f,!1]);await this.documents.onBufCreate(m)}}F.renameSync(e,t)}r&&r.push(()=>this.renameFile(t,e,{skipEvent:!0})),i.skipEvent||this._onDidRenameFiles.fire({files:[d]})}async promptAnotations(e,t){let i=t?tJ(e,t):[],r=[];for(let o of i){let s=t[o];await this.window.showMenuPicker(["Yes","No"],{position:"center",title:"Confirm edits",content:s.label+(s.description?" "+s.description:"")})!==0&&r.push(o)}return r}async applyEdit(e,t){let i=rJ(e),r=[],o=!1;try{let s=await this.promptAnotations(i,e.changeAnnotations);s.length>0&&(i=iJ(i,s));let a={},l=await this.documents.getCurrentUri();o=i.every(u=>ei.is(u)&&u.textDocument.uri===l),this.validateChanges(i);for(let u of i)if(ei.is(u)){let{textDocument:c,edits:d}=u,{uri:h}=c,g=await this.loadResource(h),f=await g.applyEdits(d,!1,h===l);if(f){let m=g.version,{newText:y,range:w}=f;a[h]={uri:h,lnum:w.start.line+1,newLines:g.getLines(w.start.line,w.end.line),oldLines:y.endsWith(` +`)?y.slice(0,-1).split(` +`):y.split(` +`)},r.push(async()=>{let x=this.documents.getDocument(h);!x||!x.attached||x.version!==m||(await x.applyEdits([f]),c.version=x.version)})}}else Gn.is(u)?await this.createFile(Cw(u.uri),u.options,r):Fn.is(u)?await this.deleteFile(Cw(u.uri),u.options,r):zn.is(u)&&await this.renameFile(Cw(u.oldUri),Cw(u.newUri),u.options,r);if(r.length===0)return!0;t||(this.editState={edit:{documentChanges:i,changeAnnotations:e.changeAnnotations},changes:a,recovers:r,applied:!0}),this.nvim.redrawVim()}catch(s){return Jce.error("Error on applyEdits:",e,s),t||this.window.showErrorMessage(`Error on applyEdits: ${s}`),await this.undoChanges(r),!1}return t||o||this.window.showInformationMessage("Use ':wa' to save changes or ':CocCommand workspace.inspectEdit' to inspect."),!0}async undoChanges(e){for(;e.length>0;){let t=e.pop();await Promise.resolve(t())}}async inspectEdit(){if(!this.editState){this.window.showWarningMessage("No workspace edit to inspect");return}await new vp(this.nvim,this.keymaps).show(this.editState)}async undoWorkspaceEdit(){let{editState:e}=this;if(!e||!e.applied){this.window.showWarningMessage("No workspace edit to undo");return}e.applied=!1,await this.undoChanges(e.recovers)}async redoWorkspaceEdit(){let{editState:e}=this;if(!e||e.applied){this.window.showWarningMessage("No workspace edit to redo");return}this.editState=void 0,await this.applyEdit(e.edit)}validateChanges(e){let{documents:t}=this;for(let i of e)if(ei.is(i)){let{uri:r,version:o}=i.textDocument,s=t.getDocument(r);if(typeof o=="number"&&o>0){if(!s)throw O8(r);if(s.version!=o)throw new Error(`${r} changed before apply edit`)}else if(!s&&!Bg(r))throw Oy(r)}else if(Gn.is(i)||Fn.is(i)){if(!Bg(i.uri))throw Oy(i.uri)}else if(zn.is(i)&&(!Bg(i.oldUri)||!Bg(i.newUri)))throw Oy(i.oldUri)}async findFiles(e,t,i,r){let o=this.workspaceFolderControl.workspaceFolders;if((r==null?void 0:r.isCancellationRequested)||!o.length||i===0)return[];i=i??1/0;let s=o.map(c=>A.parse(c.uri).fsPath),a;typeof e!="string"?(a=e.pattern,s=[e.baseUri.fsPath]):a=e;let l=[],u=!1;for(let c of s){let d=await(0,st.promisify)(ey)(a,{dot:!0,cwd:c,nodir:!0,absolute:!1});if(r!=null&&r.isCancellationRequested)return[];for(let h of d)if(!(t&&Uce(c,h,t))&&(l.push(A.file(R.join(c,h))),l.length===i)){u=!0;break}if(u)break}return l}async fireWaitUntilEvent(e,t,i){let r=!0,o=[];e.fire({...t,waitUntil:s=>{if(!r)throw N8("waitUntil");let a=new Promise(u=>{setTimeout(u,this.operationTimeout)}),l=Promise.race([s,a]).then(u=>{if(u&&Qs.is(u))return this.applyEdit(u,!0)});o.push(l)}}),r=!1,await Promise.all(o)}}});function xp(){return xJ.default.randomBytes(16)}var xJ,tR=D(()=>{xJ=sr(require("crypto"))});function $ce(n,e){var t=e||0,i=CJ;return[i[n[t++]],i[n[t++]],i[n[t++]],i[n[t++]],"-",i[n[t++]],i[n[t++]],"-",i[n[t++]],i[n[t++]],"-",i[n[t++]],i[n[t++]],"-",i[n[t++]],i[n[t++]],i[n[t++]],i[n[t++]],i[n[t++]],i[n[t++]]].join("")}var CJ,Cp,Sw,iR=D(()=>{CJ=[];for(Cp=0;Cp<256;++Cp)CJ[Cp]=(Cp+256).toString(16).substr(1);Sw=$ce});function Xce(n,e,t){var i=e&&t||0,r=e||[];n=n||{};var o=n.node||SJ,s=n.clockseq!==void 0?n.clockseq:nR;if(o==null||s==null){var a=n.random||(n.rng||xp)();o==null&&(o=SJ=[a[0]|1,a[1],a[2],a[3],a[4],a[5]]),s==null&&(s=nR=(a[6]<<8|a[7])&16383)}var l=n.msecs!==void 0?n.msecs:new Date().getTime(),u=n.nsecs!==void 0?n.nsecs:oR+1,c=l-rR+(u-oR)/1e4;if(c<0&&n.clockseq===void 0&&(s=s+1&16383),(c<0||l>rR)&&n.nsecs===void 0&&(u=0),u>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");rR=l,oR=u,nR=s,l+=122192928e5;var d=((l&268435455)*1e4+u)%4294967296;r[i++]=d>>>24&255,r[i++]=d>>>16&255,r[i++]=d>>>8&255,r[i++]=d&255;var h=l/4294967296*1e4&268435455;r[i++]=h>>>8&255,r[i++]=h&255,r[i++]=h>>>24&15|16,r[i++]=h>>>16&255,r[i++]=s>>>8|128,r[i++]=s&255;for(var g=0;g<6;++g)r[i+g]=o[g];return e||Sw(r)}var SJ,nR,rR,oR,$l,DJ=D(()=>{tR();iR();rR=0,oR=0;$l=Xce});function Gce(n,e,t){var i=e&&t||0;typeof n=="string"&&(e=n==="binary"?new Array(16):null,n=null),n=n||{};var r=n.random||(n.rng||xp)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e)for(var o=0;o<16;++o)e[i+o]=r[o];return e||Sw(r)}var me,TJ=D(()=>{tR();iR();me=Gce});var ot=D(()=>{DJ();TJ()});var RJ=v((qFe,PJ)=>{var sR=4294967296,kJ=[];for(Uc=0;Uc<256;Uc++)kJ[Uc]=(Uc>15?"":"0")+Uc.toString(16);var Uc,Sp=PJ.exports=function(n,e){n instanceof Buffer?(this.buffer=n,this.offset=e||0):Object.prototype.toString.call(n)=="[object Uint8Array]"?(this.buffer=new Buffer(n),this.offset=e||0):(this.buffer=this.buffer||new Buffer(8),this.offset=0,this.setValue.apply(this,arguments))};Sp.MAX_INT=Math.pow(2,53);Sp.MIN_INT=-Math.pow(2,53);Sp.prototype={constructor:Sp,_2scomp:function(){for(var n=this.buffer,e=this.offset,t=1,i=e+7;i>=e;i--){var r=(n[i]^255)+t;n[i]=r&255,t=r>>8}},setValue:function(n,e){var t=!1;if(arguments.length==1)if(typeof n=="number"){if(t=n<0,n=Math.abs(n),e=n%sR,n=n/sR,n>sR)throw new RangeError(n+" is outside Int64 range");n=n|0}else if(typeof n=="string")n=(n+"").replace(/^0x/,""),e=n.substr(-8),n=n.length>8?n.substr(0,n.length-8):"",n=parseInt(n,16),e=parseInt(e,16);else throw new Error(n+" must be a Number or String");for(var i=this.buffer,r=this.offset,o=7;o>=0;o--)i[r+o]=e&255,e=o==4?n:e>>>8;t&&this._2scomp()},toNumber:function(n){for(var e=this.buffer,t=this.offset,i=e[t]&128,r=0,o=1,s=7,a=1;s>=0;s--,a*=256){var l=e[t+s];i&&(l=(l^255)+o,o=l>>8,l=l&255),r+=l*a}return!n&&r>=Sp.MAX_INT?i?-1/0:1/0:i?-r:r},valueOf:function(){return this.toNumber(!1)},toString:function(n){return this.valueOf().toString(n||10)},toOctetString:function(n){for(var e=new Array(8),t=this.buffer,i=this.offset,r=0;r<8;r++)e[r]=kJ[t[i+r]];return e.join(n||"")},toBuffer:function(n){if(n&&this.offset===0)return this.buffer;var e=new Buffer(8);return this.buffer.copy(e,0,this.offset,this.offset+8),e},copy:function(n,e){this.buffer.copy(n,e||0,this.offset,this.offset+8)},compare:function(n){if((this.buffer[this.offset]&128)!=(n.buffer[n.offset]&128))return n.buffer[n.offset]-this.buffer[this.offset];for(var e=0;e<8;e++)if(this.buffer[this.offset+e]!==n.buffer[n.offset+e])return this.buffer[this.offset+e]-n.buffer[n.offset+e];return 0},equals:function(n){return this.compare(n)===0},inspect:function(){return"[Int64 value:"+this+" octets:"+this.toOctetString(" ")+"]"}}});var HJ=v(Tp=>{var EJ=require("events").EventEmitter,zce=require("util"),Kce=require("os"),WFe=require("assert"),Dp=RJ(),Da=Kce.endianness()=="BE";function IJ(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function Ai(n){this.buf=Buffer.alloc(IJ(n||8192)),this.readOffset=0,this.writeOffset=0}Tp.Accumulator=Ai;Ai.prototype.writeAvail=function(){return this.buf.length-this.writeOffset};Ai.prototype.readAvail=function(){return this.writeOffset-this.readOffset};Ai.prototype.reserve=function(n){if(!(n0&&(this.buf.copy(this.buf,0,this.readOffset,this.writeOffset),this.writeOffset-=this.readOffset,this.readOffset=0),!(n0)this.assertReadableSize(n);else if(n<0&&this.readOffset+n<0)throw new Error("advance with negative offset "+n+" would seek off the start of the buffer");this.readOffset+=n};Ai.prototype.writeByte=function(n){this.reserve(1),this.buf.writeInt8(n,this.writeOffset),++this.writeOffset};Ai.prototype.writeInt=function(n,e){switch(this.reserve(e),e){case 1:this.buf.writeInt8(n,this.writeOffset);break;case 2:Da?this.buf.writeInt16BE(n,this.writeOffset):this.buf.writeInt16LE(n,this.writeOffset);break;case 4:Da?this.buf.writeInt32BE(n,this.writeOffset):this.buf.writeInt32LE(n,this.writeOffset);break;default:throw new Error("unsupported integer size "+e)}this.writeOffset+=e};Ai.prototype.writeDouble=function(n){this.reserve(8),Da?this.buf.writeDoubleBE(n,this.writeOffset):this.buf.writeDoubleLE(n,this.writeOffset),this.writeOffset+=8};var lR=0,uR=1,cR=2,dR=3,hR=4,Pw=5,kw=6,LJ=7,FJ=8,MJ=9,jJ=10,OJ=11,Qce=12,aR=0,_J=1,Vce=127,ede=32767,tde=2147483647;function On(){EJ.call(this),this.buf=new Ai,this.state=aR}zce.inherits(On,EJ);Tp.BunserBuf=On;On.prototype.append=function(n,e){if(e)return this.buf.append(n),this.process(e);try{this.buf.append(n)}catch(t){this.emit("error",t);return}this.processLater()};On.prototype.processLater=function(){var n=this;process.nextTick(function(){try{n.process(!1)}catch(e){n.emit("error",e)}})};On.prototype.process=function(n){if(this.state==aR){if(this.buf.readAvail()<2)return;if(this.expectCode(0),this.expectCode(1),this.pduLen=this.decodeInt(!0),this.pduLen===!1){this.buf.readAdvance(-2);return}this.buf.reserve(this.pduLen),this.state=_J}if(this.state==_J){if(this.buf.readAvail()0&&this.processLater()};On.prototype.raise=function(n){throw new Error(n+", in Buffer of length "+this.buf.buf.length+" ("+this.buf.readAvail()+" readable) at offset "+this.buf.readOffset+" buffer: "+JSON.stringify(this.buf.buf.slice(this.buf.readOffset,this.buf.readOffset+32).toJSON()))};On.prototype.expectCode=function(n){var e=this.buf.readInt(1);e!=n&&this.raise("expected bser opcode "+n+" but got "+e)};On.prototype.decodeAny=function(){var n=this.buf.peekInt(1);switch(n){case dR:case hR:case Pw:case kw:return this.decodeInt();case LJ:return this.buf.readAdvance(1),this.buf.readDouble();case FJ:return this.buf.readAdvance(1),!0;case MJ:return this.buf.readAdvance(1),!1;case jJ:return this.buf.readAdvance(1),null;case cR:return this.decodeString();case lR:return this.decodeArray();case uR:return this.decodeObject();case OJ:return this.decodeTemplate();default:this.raise("unhandled bser opcode "+n)}};On.prototype.decodeArray=function(){this.expectCode(lR);for(var n=this.decodeInt(),e=[],t=0;t"u")throw Error("no bser found in string and no error raised!?");return t}Tp.loadFromBuffer=ide;function AJ(n){for(var e=Buffer.alloc(n.length),t=0;t"u"&&r--}Dw(n,r);for(var t=0;t"u")){Tw(n,o);try{Tw(n,s)}catch(c){throw new Error(c.message+" (while serializing object property with name `"+o+"')")}}}return;default:throw new Error("cannot serialize type "+typeof e+" to BSER")}}function nde(n){var e=new Ai;e.writeByte(0),e.writeByte(1),e.writeByte(Pw),e.writeInt(0,4),Tw(e,n);var t=e.writeOffset,i=t-7;return e.writeOffset=3,e.writeInt(i,4),e.writeOffset=t,e.buf.slice(0,t)}Tp.dumpToBuffer=nde});var UJ=v((ZFe,JJ)=>{"use strict";var rde=require("net"),YJ=require("events").EventEmitter,ode=require("util"),sde=require("child_process"),ZJ=HJ(),BJ=["subscription","log"];function ys(n){var e=this;YJ.call(this),this.watchmanBinaryPath="watchman",n&&n.watchmanBinaryPath&&(this.watchmanBinaryPath=n.watchmanBinaryPath.trim()),this.commands=[]}ode.inherits(ys,YJ);JJ.exports.Client=ys;ys.prototype.sendNextCommand=function(){this.currentCommand||(this.currentCommand=this.commands.shift(),this.currentCommand&&this.socket.write(ZJ.dumpToBuffer(this.currentCommand.cmd)))};ys.prototype.cancelCommands=function(n){var e=new Error(n),t=this.commands;this.commands=[],this.currentCommand&&(t.unshift(this.currentCommand),this.currentCommand=null),t.forEach(function(i){i.cb(e)})};ys.prototype.connect=function(){var n=this;function e(l){n.bunser=new ZJ.BunserBuf,n.bunser.on("value",function(u){for(var c=!1,d=0;d=0:!1}ys.prototype._synthesizeCapabilityCheck=function(n,e,t){n.capabilities={};var i=n.version;return e.forEach(function(r){n.capabilities[r]=WJ(i,r)}),t.forEach(function(r){var o=WJ(i,r);n.capabilities[r]=o,o||(n.error="client required capability `"+r+"` is not supported by this server")}),n};ys.prototype.capabilityCheck=function(n,e){var t=n.optional||[],i=n.required||[],r=this;this.command(["version",{optional:t,required:i}],function(o,s){if(o){e(o);return}if(!("capabilities"in s)&&(s=r._synthesizeCapabilityCheck(s,t,i),s.error)){o=new Error(s.error),o.watchmanResponse=s,e(o);return}e(null,s)})};ys.prototype.end=function(){this.cancelCommands("The client was ended"),this.socket&&(this.socket.end(),this.socket=null),this.bunser=null}});function ude(n){return!(n=="/"||n=="/tmp"||n=="/private/tmp"||pt(n,Et.homedir(),!0)||R.parse(n).base==n||n.startsWith("/tmp/")||n.startsWith("/private/tmp/")||pt(Et.tmpdir(),n,!0))}var gR,lde,vs,pR=D(()=>{"use strict";ot();Ce();at();ce();gR=J("core-watchman"),lde=["relative_root","cmd-watch-project","wildmatch","field-new"],vs=class{constructor(e,t){this.channel=t;this._disposed=!1;let i=UJ();this.client=new i.Client({watchmanBinaryPath:e}),this.client.setMaxListeners(300)}checkCapability(){let{client:e}=this;return new Promise((t,i)=>{e.capabilityCheck({optional:[],required:lde},(r,o)=>{if(r)return t(!1);let{capabilities:s}=o;for(let a of Object.keys(s))if(!s[a])return t(!1);t(!0)})})}async watchProject(e){let t=await this.command(["watch-project",e]),{watch:i,warning:r,relative_path:o}=t;return i?(r&&gR.warn(r),this.watch=i,this.relative_path=o,gR.info(`watchman watching project: ${e}`),this.appendOutput(`watchman watching project: ${e}`),!0):!1}command(e){return new Promise((t,i)=>{this.client.command(e,(r,o)=>{if(r)return i(r);t(o)})})}async subscribe(e,t){let{watch:i,relative_path:r}=this;if(!i)throw new Error("watchman not watching");let{clock:o}=await this.command(["clock",i]),s=$l(),a={expression:["allof",["match","**/*","wholename"]],fields:["name","size","new","exists","type","mtime_ms","ctime_ms"],since:o},l=i;if(r&&(a.relative_root=r,l=R.join(i,r)),!this.client)return;let{subscribe:u}=await this.command(["subscribe",i,s,a]);return this.appendOutput(`subscribing "${e}" in ${l}`),this.client.on("subscription",c=>{if(!c||c.subscription!=s)return;let{files:d}=c;if(!d||(d=d.filter(g=>g.type=="f"&&si(g.name,e,{dot:!0})),!d.length))return;let h=Object.assign({},c);this.relative_path&&(h.root=R.resolve(c.root,this.relative_path)),this.appendOutput(`file change detected: ${JSON.stringify(h,null,2)}`),t(h)}),{dispose:()=>{this.unsubscribe(u)},subscribe:u}}unsubscribe(e){if(this._disposed)return Promise.resolve();let{watch:t}=this;if(!!t)return this.appendOutput(`unsubscribe "${e}" in: ${t}`),this.command(["unsubscribe",t,e]).catch(i=>{var r;(r=i.message)!=null&&r.includes("The client was ended")&&gR.error(i)})}dispose(){this._disposed||(this._disposed=!0,this.client&&(this.client.end(),this.client=void 0))}appendOutput(e,t="Info"){this.channel&&this.channel.appendLine(`[${t} - ${new Date().toLocaleTimeString()}] ${e}`)}static async createClient(e,t,i){if(!ude(t))throw new Error(`Watch for ${t} is ignored`);let r;try{if(r=new vs(e,i),!await r.checkCapability())throw new Error("required capabilities do not exist.");if(!await r.watchProject(t))throw new Error("unable to watch");return r}catch(o){throw r&&r.dispose(),o}}}});var cde,kp,$c,fR,$J=D(()=>{"use strict";Je();Ce();ee();Se();at();ce();$();pR();cde=J("fileSystemWatcher"),kp=class{constructor(e,t){this.workspaceFolder=e;this.watchmanPath=t;this.clientsMap=new Map;this.disposables=[];this.creating=new Set;this._onDidCreateClient=new p.Emitter;this.disabled=!1;this.onDidCreateClient=this._onDidCreateClient.event}attach(e){this.channel=e;let t=i=>{let r=A.parse(i.uri).fsPath;this.createClient(r)};this.workspaceFolder.workspaceFolders.forEach(i=>{t(i)}),this.workspaceFolder.onDidChangeWorkspaceFolders(i=>{i.added.forEach(r=>{t(r)}),i.removed.forEach(r=>{let o=A.parse(r.uri).fsPath,s=this.clientsMap.get(o);s&&(this.clientsMap.delete(o),s.dispose())})},null,this.disposables)}waitClient(e){return this.clientsMap.has(e)?Promise.resolve():new Promise(t=>{let i=this.onDidCreateClient(r=>{r==e&&(i.dispose(),t())})})}async createClient(e){if(!(this.watchmanPath==null||this.has(e)||this.disabled))try{let t=await this.getWatchmanPath();this.creating.add(e);let i=await vs.createClient(t,e,this.channel);this.creating.delete(e),this.clientsMap.set(e,i);for(let r of kp.watchers)r.listen(e,i);this._onDidCreateClient.fire(e)}catch(t){this.creating.delete(e),this.channel&&this.channel.appendLine(`Error on create watchman client: ${t}`)}}async getWatchmanPath(){let e=this.watchmanPath;return process.env.WATCHMAN_SOCK||(e=await vo(this.watchmanPath,{all:!1})),e}has(e){let t=Array.from(this.clientsMap.keys());return t.push(...this.creating),t.some(i=>li(i,e))}createFileSystemWatcher(e,t,i,r){let o=new fR(e,t,i,r),s=typeof e=="string"?void 0:e.baseUri.fsPath;for(let[a,l]of this.clientsMap.entries())s&&pt(a,s,!0)&&(s=void 0),o.listen(a,l);return s&&this.createClient(s),kp.watchers.add(o),o}dispose(){this._onDidCreateClient.dispose();for(let e of this.clientsMap.values())e&&e.dispose();this.clientsMap.clear(),kp.watchers.clear(),Y(this.disposables)}},$c=kp;$c.watchers=new Set;fR=class{constructor(e,t,i,r){this.globPattern=e;this.ignoreCreateEvents=t;this.ignoreChangeEvents=i;this.ignoreDeleteEvents=r;this._onDidCreate=new p.Emitter;this._onDidChange=new p.Emitter;this._onDidDelete=new p.Emitter;this._onDidRename=new p.Emitter;this.disposables=[];this._disposed=!1;this.onDidCreate=this._onDidCreate.event;this.onDidChange=this._onDidChange.event;this.onDidDelete=this._onDidDelete.event;this.onDidRename=this._onDidRename.event;this._onDidListen=new p.Emitter;this.onDidListen=this._onDidListen.event}listen(e,t){let{globPattern:i,ignoreCreateEvents:r,ignoreChangeEvents:o,ignoreDeleteEvents:s}=this,a,l;if(typeof i=="string")a=i;else if(a=i.pattern,l=i.baseUri.fsPath,!pt(e,l,!0))return;let u=c=>{let{root:d,files:h}=c;l&&!li(d,l)?h=h.filter(g=>{if(g.type!="f")return!1;let f=R.join(d,g.name);return pt(l,f)?si(R.relative(l,f),a,{dot:!0}):!1}):h=h.filter(g=>g.type=="f"&&si(g.name,a,{dot:!0}));for(let g of h){let f=A.file(R.join(d,g.name));g.exists?g.new===!0?r||this._onDidCreate.fire(f):o||this._onDidChange.fire(f):s||this._onDidDelete.fire(f)}if(h.length==2&&h[0].exists!==h[1].exists){let g=h.find(m=>m.exists!==!0),f=h.find(m=>m.exists===!0);g.size==f.size&&this._onDidRename.fire({oldUri:A.file(R.join(d,g.name)),newUri:A.file(R.join(d,f.name))})}if(h.length>2&&h.length%2==0){let[g,f]=lv(h,m=>m.exists===!1);if(g.length==f.length)for(let m of g){let y=f.find(w=>w.size==m.size&&w.mtime_ms==m.mtime_ms);y&&this._onDidRename.fire({oldUri:A.file(R.join(d,m.name)),newUri:A.file(R.join(d,y.name))})}}};t.subscribe(a,u).then(c=>{if(!!c){if(this._onDidListen.fire(),this.subscribe=c.subscribe,this._disposed)return c.dispose();this.disposables.push(c)}},c=>{c instanceof Error&&c.message.includes("client was ended")||cde.error(`Error on subscribe ${a}`,c)})}dispose(){this._disposed=!0,$c.watchers.delete(this),this._onDidRename.dispose(),this._onDidCreate.dispose(),this._onDidChange.dispose(),Y(this.disposables)}}});function XJ(n){return n=="n"||n=="o"||n=="x"||n=="v"?"":n=="i"?"":n=="s"?"":""}function hde(n){return typeof n=="number"?n:_.bufnr}var dde,Pp,GJ=D(()=>{"use strict";Re();Ce();$();pe();dde=J("core-keymaps");Pp=class{constructor(){this.keymaps=new Map}attach(e){this.nvim=e}async doKeymap(e,t){let i=this.keymaps.get(e)??this.keymaps.get("coc-"+e);if(!i)return dde.error(`keymap for ${e} not found`),t;let[r,o]=i,s=await Promise.resolve(r());return o&&await this.nvim.command(`silent! call repeat#set("\\(coc-${e})", -1)`),s??t}registerKeymap(e,t,i,r={}){if(!t)throw new Error(`Invalid key ${t} of registerKeymap`);let o=`coc-${t}`;if(this.keymaps.has(o))throw new Error(`${t} already exists.`);let s=`(${o})`;r=Object.assign({sync:!0,cancel:!0,silent:!0,repeat:!1},r);let{nvim:a}=this;this.keymaps.set(o,[i,!!r.repeat]);let l=r.sync?"request":"notify",u=r.cancel?1:0;for(let c of e)c=="i"?a.setKeymap(c,s,`coc#_insert_key('${l}', '${o}', ${u})`,{expr:!0,noremap:!0,silent:r.silent}):a.setKeymap(c,s,`:${XJ(c)}call coc#rpc#${l}('doKeymap', ['${o}'])`,{noremap:!0,silent:r.silent});return p.Disposable.create(()=>{this.keymaps.delete(o);for(let c of e)a.deleteKeymap(c,s)})}registerExprKeymap(e,t,i,r=!1,o=!0){let s=hde(r),a=`${e}-${ok(t)}${r?`-${s}`:""}`,{nvim:l}=this,u;e=="i"?u=`coc#_insert_key('request', '${a}', ${o?"1":"0"})`:u=`coc#rpc#request('doKeymap', ['${a}'])`;let c={noremap:!0,silent:!0,expr:!0,nowait:!0};return r?l.createBuffer(s).setKeymap(e,t,u,c):l.setKeymap(e,t,u,c),this.keymaps.set(a,[i,!1]),p.Disposable.create(()=>{this.keymaps.delete(a),r?l.createBuffer(s).deleteKeymap(e,t):l.deleteKeymap(e,t)})}registerLocalKeymap(e,t,i,r,o){let{nvim:s}=this,a=s.createBuffer(e),l=`local-${e}-${t}-${ok(i)}`;this.keymaps.set(l,[r,!1]);let u=o?"notify":"request",c=XJ(t);return a.setKeymap(t,i,`:${c}call coc#rpc#${u}('doKeymap', ['${l}'])`,{silent:!0,nowait:!0,noremap:!0}),p.Disposable.create(()=>{this.keymaps.delete(l),a.deleteKeymap(t,i)})}}});var zJ,Rp,KJ=D(()=>{"use strict";Re();Ce();ee();$();pe();zJ=J("watchers"),Rp=class{constructor(){this.optionCallbacks=new Map;this.globalCallbacks=new Map;this.disposables=[];this._onDidRuntimePathChange=new p.Emitter;this.onDidRuntimePathChange=this._onDidRuntimePathChange.event;_.on("OptionSet",async(e,t,i)=>{let r=Array.from(this.optionCallbacks.get(e)??[]);await Promise.allSettled(r.map(o=>(async()=>{try{await Promise.resolve(o(t,i))}catch(s){this.nvim.errWriteLine(`Error on OptionSet '${e}': ${xr(s)}`),zJ.error("Error on OptionSet callback:",s)}})()))},null,this.disposables),_.on("GlobalChange",async(e,t,i)=>{let r=Array.from(this.globalCallbacks.get(e)??[]);await Promise.allSettled(r.map(o=>(async()=>{try{await Promise.resolve(o(t,i))}catch(s){this.nvim.errWriteLine(`Error on GlobalChange '${e}': ${xr(s)}`),zJ.error("Error on GlobalChange callback:",s)}})()))},null,this.disposables)}get options(){return Array.from(this.optionCallbacks.keys())}attach(e,t){this.nvim=e,this.env=t,this.watchOption("runtimepath",(i,r)=>{let o=i.split(","),a=r.split(",").filter(l=>!o.includes(l));a.length>0&&this._onDidRuntimePathChange.fire(a),this.env.runtimepath=r},this.disposables)}watchOption(e,t,i){let r=this.optionCallbacks.get(e);r||(r=new Set,this.optionCallbacks.set(e,r)),r.add(t);let o=`autocmd! coc_dynamic_option OptionSet ${e} call coc#rpc#notify('OptionSet',[expand(''), v:option_old, v:option_new])`;this.nvim.command(o,!0);let s=p.Disposable.create(()=>{let a=this.optionCallbacks.get(e);a.delete(t),a.size===0&&this.nvim.command(`autocmd! coc_dynamic_option OptionSet ${e}`,!0)});return i&&i.push(s),s}watchGlobal(e,t,i){let{nvim:r}=this,o=this.globalCallbacks.get(e);o||(o=new Set,this.globalCallbacks.set(e,o)),o.add(t),r.call("coc#_watch",e,!0);let s=p.Disposable.create(()=>{let a=this.globalCallbacks.get(e);a.delete(t),a.size===0&&r.call("coc#_unwatch",e,!0)});return i&&i.push(s),s}dispose(){Y(this.disposables),this._onDidRuntimePathChange.dispose()}}});function _p(n){if(!(!n||!R.isAbsolute(n)))return{name:R.basename(n),uri:A.file(n).toString()}}var Rw,gde,pde,fde,mde,Ep,_w=D(()=>{"use strict";Je();Re();Ce();ee();Se();Ti();hs();at();ce();Be();$();ko();Rw=(i=>(i[i.Buffer=0]="Buffer",i[i.LanguageServer=1]="LanguageServer",i[i.Global=2]="Global",i))(Rw||{}),gde=J("core-workspaceFolder"),pde=[0,1,2],fde=ge(5e3,50);mde=di.as(ds.ExtensionContribution),Ep=class{constructor(e){this.configurations=e;this._onDidChangeWorkspaceFolders=new p.Emitter;this.onDidChangeWorkspaceFolders=this._onDidChangeWorkspaceFolders.event;this.rootPatterns=new Map;this._workspaceFolders=[];this._tokenSources=new Set;_.on("VimLeavePre",this.cancelAll,this),this.updateConfiguration(!0),this.configurations.onDidChange(t=>{(t.affectsConfiguration("workspace")||t.affectsConfiguration("coc.preferences"))&&this.updateConfiguration(!1)})}updateConfiguration(e){let t=this.configurations.initialConfiguration,i=t.get("workspace"),r=t.get("coc.preferences.rootPatterns");if(this.config={rootPatterns:te(r)?le(i.rootPatterns):r,ignoredFiletypes:le(i.ignoredFiletypes),bottomUpFiletypes:le(i.bottomUpFiletypes),ignoredFolders:le(i.ignoredFolders),workspaceFolderCheckCwd:!!i.workspaceFolderCheckCwd,workspaceFolderFallbackCwd:!!i.workspaceFolderFallbackCwd},e){let o=t.get("languageserver",{});this.addServerRootPatterns(o)}}addServerRootPatterns(e){for(let t of Object.keys($e(e))){let i=e[t],{filetypes:r,rootPatterns:o}=i;Array.isArray(r)&&!te(o)&&r.filter(s=>typeof s=="string").forEach(s=>{this.addRootPattern(s,o)})}}cancelAll(){for(let e of this._tokenSources)e.cancel()}setWorkspaceFolders(e){if(!e||!Array.isArray(e))return;let t=e.map(i=>_p(i));this._workspaceFolders=t.filter(i=>i!=null)}getWorkspaceFolder(e){if(e.scheme!=="file")return;let t=Array.from(this._workspaceFolders).map(o=>A.parse(o.uri).fsPath);t.sort((o,s)=>s.length-o.length);let i=e.fsPath,r=t.find(o=>pt(o,i,!0));return _p(r)}getRelativePath(e,t){let i,r="";if(typeof e=="string"?(i=A.file(e),r=e):typeof e<"u"&&(i=e,r=e.fsPath),!i)return r;let o=this.getWorkspaceFolder(i);if(!o)return r;typeof t>"u"&&this._workspaceFolders&&(t=this._workspaceFolders.length>1);let s=R.relative(A.parse(o.uri).fsPath,i.fsPath);return s=s==""?i.fsPath:s,t&&o.name&&(s=`${o.name}/${s}`),s}get workspaceFolders(){return this._workspaceFolders}addRootPattern(e,t){let i=this.rootPatterns.get(e)??[];for(let r of t)i.includes(r)||i.push(r);this.rootPatterns.set(e,i)}resolveRoot(e,t,i,r){if(e.buftype!==""||e.schema!=="file")return null;let o=A.parse(e.uri),s=this.getWorkspaceFolder(o);if(s)return A.parse(s.uri).fsPath;let a=R.dirname(o.fsPath),{ignoredFiletypes:l,ignoredFolders:u,workspaceFolderCheckCwd:c,workspaceFolderFallbackCwd:d,bottomUpFiletypes:h}=this.config;if(l!=null&&l.includes(e.filetype))return null;u=Array.isArray(u)?u.filter(f=>f&&f.length>0).map(f=>r(f)):[];let g=null;for(let f of pde){let m=this.getRootPatterns(e,f);if(m&&m.length){let y=h.includes("*")||h.includes(e.filetype),w=Ag(a,m,t,y,c,u);if(w){g=w;break}}}return!g&&d&&!Og(t,u)&&pt(t,a,!0)&&(g=t),g&&this.addWorkspaceFolder(g,i),g}addWorkspaceFolder(e,t){let i=_p(e);if(!!i)return this._workspaceFolders.findIndex(r=>r.uri==i.uri)==-1&&(this._workspaceFolders.push(i),t&&this._onDidChangeWorkspaceFolders.fire({added:[i],removed:[]})),i}renameWorkspaceFolder(e,t){let i=_p(t);if(!i)return;let r=this._workspaceFolders.findIndex(s=>A.parse(s.uri).fsPath==e);if(r==-1)return;let o=this.workspaceFolders[r];this._workspaceFolders.splice(r,1,i),this._onDidChangeWorkspaceFolders.fire({removed:[o],added:[i]})}removeWorkspaceFolder(e){let t=_p(e);if(!t)return;let i=this._workspaceFolders.findIndex(r=>r.uri==t.uri);i!=-1&&(this._workspaceFolders.splice(i,1),this._onDidChangeWorkspaceFolders.fire({removed:[t],added:[]}))}getRootPatterns(e,t){return t==0?e.getVar("root_patterns",[])||[]:t==1?this.getServerRootPatterns(e.languageId):this.config.rootPatterns}reset(){this.rootPatterns.clear(),this._workspaceFolders=[]}getServerRootPatterns(e){let t=mde.getRootPatternsByFiletype(e);return t=t.concat(le(this.rootPatterns.get(e))),wi(t)}checkFolder(e,t,i){return NY(e,t,i)}async checkPatterns(e,t){if(te(e))return!1;let i=e.map(u=>A.parse(u.uri).fsPath),r=!1,o=new p.CancellationTokenSource;this._tokenSources.add(o);let s=o.token,a=setTimeout(()=>{o.cancel()},fde),l=await Promise.allSettled(i.map(u=>this.checkFolder(u,t,s).then(c=>{this._tokenSources.delete(o),c&&(r=!0,clearTimeout(a),o.cancel())})));return clearTimeout(a),l.forEach(u=>{u.status==="rejected"&&!oc(u.reason)&&gde.error("checkPatterns error:",t,u.reason)}),r}}});var Ip,QJ=D(()=>{"use strict";Re();ee();Ip=class{constructor(e,t){this._create=e;this.disposables=[];this.itemsMap=new Map;let{disposables:i}=this;for(let r of t.attached())this.create(r);t.onDidOpenTextDocument(r=>{this.create(t.getDocument(r.bufnr))},null,i),t.onDidChangeDocument(r=>{this.onChange(r)},null,i),t.onDidCloseDocument(r=>{this.delete(r.bufnr)},null,i),_.on("LinesChanged",this.onTextChange,this,i)}onTextChange(e){let t=this.itemsMap.get(e);t&&typeof t.item.onTextChange=="function"&&t.item.onTextChange()}get items(){return Array.from(this.itemsMap.values()).map(e=>e.item)}getItem(e){var i;if(typeof e=="number")return(i=this.itemsMap.get(e))==null?void 0:i.item;let t=Array.from(this.itemsMap.values()).find(r=>r.uri==e);return t?t.item:void 0}create(e){let t=this.itemsMap.get(e.bufnr);t&&t.item.dispose();let i=this._create(e);i&&this.itemsMap.set(e.bufnr,{uri:e.uri,item:i})}onChange(e){let t=this.itemsMap.get(e.bufnr);t&&typeof t.item.onChange=="function"&&t.item.onChange(e)}delete(e){let t=this.itemsMap.get(e);t&&(t.item.dispose(),this.itemsMap.delete(e))}reset(){for(let e of this.itemsMap.values())e.item.dispose();this.itemsMap.clear()}dispose(){Y(this.disposables);for(let e of this.itemsMap.values())e.item.dispose();this._create=void 0,this.itemsMap.clear()}}});var Lp,VJ=D(()=>{"use strict";ce();Be();Lp=class{constructor(e){this.filepath=e}fetch(e){let t=this.load();if(!e)return t;let i=e.split(".");for(let r of i){if(typeof t[r]>"u")return;t=t[r]}return t}exists(e){let t=this.load(),i=e.split(".");for(let r of i){if(typeof t[r]>"u")return!1;t=t[r]}return!0}delete(e){let t=this.load(),i=t,r=e.split("."),o=r.length;for(let s=0;s"u");s++){if(s==o-1){delete t[r[s]],F.writeFileSync(this.filepath,JSON.stringify(i,null,2),"utf8");break}t=t[r[s]]}}push(e,t){let i=$e(this.load()),r=i,o=e.split("."),s=o.length;for(let a=0;a"u"&&(r[l]={}),r=r[l]}}load(){let e=R.dirname(this.filepath);if(!F.existsSync(e))return F.mkdirSync(e,{recursive:!0}),F.writeFileSync(this.filepath,"{}","utf8"),{};try{let i=F.readFileSync(this.filepath,"utf8");return JSON.parse(i.trim())}catch{return F.writeFileSync(this.filepath,"{}","utf8"),{}}}clear(){!F.existsSync(this.filepath)||F.writeFileSync(this.filepath,"{}","utf8")}destroy(){F.existsSync(this.filepath)&&F.unlinkSync(this.filepath)}}});var mR,Fp,bR=D(()=>{"use strict";ot();mR=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Fp=class{constructor(){this.items=new Map;this.shownIds=new Set;this._text="";this.interval=setInterval(()=>{this.setStatusText()},100).unref()}dispose(){this.items.clear(),this.shownIds.clear(),clearInterval(this.interval)}reset(){this.items.clear(),this.shownIds.clear()}createStatusBarItem(e,t=!1){let i=$l(),r={text:"",priority:e,isProgress:t,show:()=>{this.shownIds.add(i),this.setStatusText()},hide:()=>{this.shownIds.delete(i),this.setStatusText()},dispose:()=>{this.shownIds.delete(i),this.items.delete(i),this.setStatusText()}};return this.items.set(i,r),r}getText(){if(this.shownIds.size==0)return"";let e=new Date,t=Math.floor(e.getMilliseconds()/100),i="",r=[];for(let[o,s]of this.items)this.shownIds.has(o)&&r.push(s);r.sort((o,s)=>o.priority-s.priority);for(let o of r)o.isProgress?i=`${i} ${mR[t]} ${o.text}`:i=`${i} ${o.text}`;return i}setStatusText(){let e=this.getText(),{nvim:t}=this;e!=this._text&&t&&(this._text=e,t.pauseNotification(),this.nvim.setVar("coc_status",e,!0),this.nvim.call("coc#util#do_autocmd",["CocStatusChange"],!0),t.resumeNotification(!1,!0))}}});var Mp,e3=D(()=>{"use strict";Re();ee();$();Mp=class{constructor(e,t){this.nvim=e;this.id=t;this.disposables=[];this._onExit=new p.Emitter;this._onStderr=new p.Emitter;this._onStdout=new p.Emitter;this.onExit=this._onExit.event;this.onStdout=this._onStdout.event;this.onStderr=this._onStderr.event;_.on("TaskExit",(i,r)=>{i==this.id&&this._onExit.fire(r)},null,this.disposables),_.on("TaskStderr",(i,r)=>{i==this.id&&this._onStderr.fire(r)},null,this.disposables),_.on("TaskStdout",(i,r)=>{i==this.id&&this._onStdout.fire(r)},null,this.disposables)}async start(e){let{nvim:t}=this;return await t.call("coc#task#start",[this.id,e])}async stop(){let{nvim:e}=this;await e.call("coc#task#stop",[this.id])}get running(){let{nvim:e}=this;return e.call("coc#task#running",[this.id])}dispose(){let{nvim:e}=this;e.call("coc#task#stop",[this.id],!0),this._onStdout.dispose(),this._onStderr.dispose(),this._onExit.dispose(),Y(this.disposables)}}});var yR,bde,vR,b,he=D(()=>{"use strict";Je();AZ();NZ();qZ();Ek();YZ();bJ();yJ();wJ();$J();xP();GJ();ql();KJ();_w();Re();Ce();QJ();VJ();Ug();qg();bR();Mk();e3();Jt();hs();ce();Be();Nl();yR=J("workspace"),bde=["showMessage","runTerminalCommand","openTerminal","showQuickpick","menuPick","openLocalConfig","showPrompt","createStatusBarItem","createOutputChannel","showOutputChannel","requestInput","echoLines","getCursorPosition","moveTo","getOffset","getSelectedRange","selectRange","createTerminal"],vR=class{constructor(){this.statusLine=new Fp;QY().then(o=>{this.fuzzyExports=o}),ga.create().then(o=>{this.strWdith=o}),_.on("VimResized",(o,s)=>{Object.assign($e(this.env),{columns:o,lines:s})}),Object.defineProperty(this.statusLine,"nvim",{get:()=>this.nvim});let e=this.configurations=new hp(xY,new gp(this));this.workspaceFolderControl=new Ep(this.configurations);let t=this.documentsManager=new bp(this.configurations,this.workspaceFolderControl);this.contentProvider=new fp(t),this.watchers=new Rp,this.autocmds=new pp,this.keymaps=new Pp,this.files=new wp(t,this.configurations,this.workspaceFolderControl,this.keymaps),this.editors=new yp(t),this.onDidRuntimePathChange=this.watchers.onDidRuntimePathChange,this.onDidChangeWorkspaceFolders=this.workspaceFolderControl.onDidChangeWorkspaceFolders,this.onDidChangeConfiguration=this.configurations.onDidChange,this.onDidOpenTextDocument=t.onDidOpenTextDocument,this.onDidChangeTextDocument=t.onDidChangeDocument,this.onDidCloseTextDocument=t.onDidCloseDocument,this.onDidSaveTextDocument=t.onDidSaveTextDocument,this.onWillSaveTextDocument=t.onWillSaveTextDocument,this.onDidCreateFiles=this.files.onDidCreateFiles,this.onDidRenameFiles=this.files.onDidRenameFiles,this.onDidDeleteFiles=this.files.onDidDeleteFiles,this.onWillCreateFiles=this.files.onWillCreateFiles,this.onWillRenameFiles=this.files.onWillRenameFiles,this.onWillDeleteFiles=this.files.onWillDeleteFiles;let r=e.initialConfiguration.get("coc.preferences").watchmanPath??CY;this.fileSystemWatchers=new $c(this.workspaceFolderControl,r)}get initialConfiguration(){return this.configurations.initialConfiguration}async init(e){let{nvim:t}=this;for(let o of bde)Object.defineProperty(this,o,{get:()=>(...s)=>{let a=` +`+Error().stack.split(` +`).slice(2,4).join(` +`);return yR.warn(`workspace.${o} is deprecated, please use window.${o} instead.`,a),e[o].apply(e,s)}});for(let o of["onDidOpenTerminal","onDidCloseTerminal"])Object.defineProperty(this,o,{get:()=>{let s=` +`+Error().stack.split(` +`).slice(2,4).join(` +`);return yR.warn(`workspace.${o} is deprecated, please use window.${o} instead.`,s),e[o]}});let i=this._env=await t.call("coc#util#vim_info");e.init(i),this.checkVersion(ak),this.configurations.updateMemoryConfig(this._env.config),this.workspaceFolderControl.setWorkspaceFolders(this._env.workspaceFolders),this.workspaceFolderControl.onDidChangeWorkspaceFolders(()=>{t.setVar("WorkspaceFolders",this.folderPaths,!0)}),this.files.attach(t,i,e),this.contentProvider.attach(t),this.registerTextDocumentContentProvider("output",la.getProvider(t)),this.keymaps.attach(t),this.autocmds.attach(t,i),this.watchers.attach(t,i),await this.documentsManager.attach(this.nvim,this._env),await this.editors.attach(t);let r=la.create("watchman",t);this.fileSystemWatchers.attach(r),this.strWdith&&this.strWdith.setAmbw(!i.ambiguousIsNarrow)}checkVersion(e){this._env.apiversion!=e&&this.nvim.echoError(`API version ${this._env.apiversion} is not ${ak}, please build coc.nvim by 'yarn install' after pull source code.`)}getDisplayWidth(e,t=!1){return this.strWdith.getWidth(e,t)}get version(){return Rl}get cwd(){return this.documentsManager.cwd}get env(){return this._env}get root(){return this.documentsManager.root||this.cwd}get rootPath(){return this.root}get bufnr(){return this.documentsManager.bufnr}get insertMode(){return _.insertMode}get floatSupported(){return!0}get uri(){return this.documentsManager.uri}get workspaceFolder(){return this.workspaceFolders[0]}get textDocuments(){return this.documentsManager.textDocuments}get documents(){return this.documentsManager.documents}get document(){return this.documentsManager.document}get workspaceFolders(){return this.workspaceFolderControl.workspaceFolders}checkPatterns(e,t){return this.workspaceFolderControl.checkPatterns(t??this.workspaceFolderControl.workspaceFolders,e)}get folderPaths(){return this.workspaceFolders.map(e=>A.parse(e.uri).fsPath)}get channelNames(){return la.names}get pluginRoot(){return Do}get isVim(){return this._env.isVim}get isNvim(){return!this._env.isVim}get completeOpt(){return""}get filetypes(){return this.documentsManager.filetypes}get languageIds(){return this.documentsManager.languageIds}createNameSpace(e){return Y4(e)}has(e){return Wv(this.env,e)}registerAutocmd(e){if(e.request&&e.event!=="BufWritePre"){let t=Ll(Error().stack);yR.warn(`Extension "${t}" registered synchronized autocmd "${e.event}", which could be slow.`)}return this.autocmds.registerAutocmd(e)}watchOption(e,t,i){return this.watchers.watchOption(e,t,i)}watchGlobal(e,t,i){let r=t??function(){};return this.watchers.watchGlobal(e,r,i)}match(e,t){return wP(e,t.uri,t.languageId)}createFileSystemWatcher(e,t,i,r){return this.fileSystemWatchers.createFileSystemWatcher(e,t,i,r)}createFuzzyMatch(){return new Dv(this.fuzzyExports)}getWatchmanPath(){return Z4(this.configurations)}getConfiguration(e,t){return this.configurations.getConfiguration(e,t)}resolveJSONSchema(e){return this.configurations.getJSONSchema(e)}getDocument(e){return this.documentsManager.getDocument(e)}hasDocument(e,t){let i=this.documentsManager.getDocument(e);return i!=null&&(t!=null?i.version==t:!0)}getUri(e,t=""){let i=this.documentsManager.getDocument(e);return i?i.uri:t}isAttached(e){let t=this.documentsManager.getDocument(e);return t!=null&&t.attached}getAttachedDocument(e){let t=this.getDocument(e);if(!t)throw new Error(`Buffer ${e} not created.`);if(!t.attached)throw new Error(`Buffer ${e} not attached, ${t.notAttachReason}`);return t}getQuickfixItem(e,t,i="",r){return this.documentsManager.getQuickfixItem(e,t,i,r)}createMru(e){return new io(e)}async getQuickfixList(e){return this.documentsManager.getQuickfixList(e)}async showLocations(e){await this.documentsManager.showLocations(e)}getLine(e,t){return this.documentsManager.getLine(e,t)}getWorkspaceFolder(e){return this.workspaceFolderControl.getWorkspaceFolder(typeof e=="string"?A.parse(e):e)}readFile(e){return this.documentsManager.readFile(e)}async getCurrentState(){let e=await this.document,t=await ip(this.nvim);return{document:e.textDocument,position:t}}async getFormatOptions(e){return this.documentsManager.getFormatOptions(e)}resolveModule(e){return U4(e)}async runCommand(e,t,i){return Ro(e,{cwd:t??this.cwd},i)}expand(e){return this.documentsManager.expand(e)}async callAsync(e,t){return await Yv(this.nvim,e,t)}registerTextDocumentContentProvider(e,t){return this.contentProvider.registerTextDocumentContentProvider(e,t)}registerKeymap(e,t,i,r={}){return this.keymaps.registerKeymap(e,t,i,r)}registerExprKeymap(e,t,i,r=!1,o=!0){return this.keymaps.registerExprKeymap(e,t,i,r,o)}registerLocalKeymap(e,t,i,r,o=!1){return typeof arguments[0]=="string"&&(e=this.bufnr,t=arguments[0],i=arguments[1],r=arguments[2],o=arguments[3]??!1),this.keymaps.registerLocalKeymap(e,t,i,r,o)}createTask(e){return new Mp(this.nvim,e)}createDatabase(e){return new Lp(R.join(Kn,e+".json"))}registerBufferSync(e){return new Ip(e,this.documentsManager)}async attach(){await this.documentsManager.attach(this.nvim,this._env)}jumpTo(e,t,i){return this.files.jumpTo(e,t,i)}findUp(e){return J4(this.nvim,this.cwd,e)}applyEdit(e){return this.files.applyEdit(e)}createFile(e,t={}){return this.files.createFile(e,t)}loadFile(e,t){return this.files.loadResource(e,t)}async loadFiles(e){return this.files.loadResources(e)}async renameFile(e,t,i={}){await this.files.renameFile(e,t,i)}async deleteFile(e,t={}){await this.files.deleteFile(e,t)}async openResource(e){await this.files.openResource(e)}async computeWordRanges(e,t,i){let r=this.getDocument(e);return r?await r.chars.computeWordRanges(r.textDocument.lines,t,i):null}openTextDocument(e){return this.files.openTextDocument(e)}getRelativePath(e,t){return this.workspaceFolderControl.getRelativePath(e,t)}async findFiles(e,t,i,r){return this.files.findFiles(e,t,i,r)}detach(){this.documentsManager.detach()}reset(){this.statusLine.reset(),this.configurations.reset(),this.workspaceFolderControl.reset(),this.documentsManager.reset()}dispose(){la.dispose(),this.autocmds.dispose(),this.statusLine.dispose(),this.watchers.dispose(),this.contentProvider.dispose(),this.documentsManager.dispose(),this.configurations.dispose()}},b=new vR});var Xc,wR,jp,t3=D(()=>{"use strict";Re();$();ee();Xc="filter",wR=class{constructor(){this.history=[]}next(e){let t=this.history.indexOf(e);return this.history[t+1]??this.history[0]}previous(e){let t=this.history.indexOf(e);return this.history[t-1]??this.history[this.history.length-1]}add(e){let t=this.history.indexOf(e);t!==-1&&this.history.splice(t,1),this.history.unshift(e)}toJSON(){return`[${this.history.join(",")}]`}},jp=class{constructor(e,t){this.nvim=e;this._activated=!1;this.history=new wR;this.disposables=[];this._onDidUpdate=new p.Emitter;this._onDidExit=new p.Emitter;this._onDidKeyPress=new p.Emitter;this.onDidKeyPress=this._onDidKeyPress.event;this.onDidUpdate=this._onDidUpdate.event;this.onDidExit=this._onDidExit.event;this.text="",_.on("InputChar",(i,r)=>{if(!(i!==Xc||!this._activated)){if(!t.includes(r)){if(r.length==1){this.text=this.text+r,this._onDidUpdate.fire(this.text);return}if(r==""||r==""){this.text=this.text.slice(0,-1),this._onDidUpdate.fire(this.text);return}if(r==""){this.text="",this._onDidUpdate.fire(this.text);return}if(r==""){let o=this.history.next(this.text);o&&(this.text=o,this._onDidUpdate.fire(this.text));return}if(r==""){let o=this.history.previous(this.text);o&&(this.text=o,this._onDidUpdate.fire(this.text))}if(r==""||r==""){this.deactivate();return}}this._onDidKeyPress.fire(r)}},null,this.disposables)}active(){this._activated=!0,this.text="",this.nvim.call("coc#prompt#start_prompt",[Xc],!0)}deactivate(e){if(!this._activated)return;this.nvim.call("coc#prompt#stop_prompt",[Xc],!0),this._activated=!1;let{text:t}=this;this.text="",this._onDidExit.fire(e),this.history.add(t)}get activated(){return this._activated}dispose(){this.deactivate(),this._onDidKeyPress.dispose(),this._onDidUpdate.dispose(),this._onDidExit.dispose(),Y(this.disposables)}}});function xR(n){return Op.is(n.label)?n.label.label:n.label}var Op,Xl,so,Ap=D(()=>{"use strict";Je();ce();(e=>{function n(t){return typeof t.label=="string"}e.is=n})(Op||(Op={}));Xl=(i=>(i[i.None=0]="None",i[i.Collapsed=1]="Collapsed",i[i.Expanded=2]="Expanded",i))(Xl||{}),so=class{constructor(e,t=0){this.collapsibleState=t;A.isUri(e)?(this.resourceUri=e,this.label=R.basename(e.path),this.id=e.toString()):this.label=e}}});var i3={};qs(i3,{default:()=>Eo});var CR,yde,vde,SR,DR,TR,Eo,Np=D(()=>{"use strict";ae();kt();Re();Ce();Ug();ee();Se();Pc();fs();Be();$();pe();We();he();t3();Ap();CR=J("BasicTreeView"),yde=ge(500,10),vde=ge(5,1),SR="tree",DR=3e3,TR=1,Eo=class{constructor(e,t){this.viewId=e;this.opts=t;this._selection=[];this._keymapDefs=[];this._onDispose=new p.Emitter;this._onDidRefrash=new p.Emitter;this._onDidExpandElement=new p.Emitter;this._onDidCollapseElement=new p.Emitter;this._onDidChangeSelection=new p.Emitter;this._onDidChangeVisibility=new p.Emitter;this._onDidFilterStateChange=new p.Emitter;this._onDidCursorMoved=new p.Emitter;this.onDidRefrash=this._onDidRefrash.event;this.onDispose=this._onDispose.event;this.onDidExpandElement=this._onDidExpandElement.event;this.onDidCollapseElement=this._onDidCollapseElement.event;this.onDidChangeSelection=this._onDidChangeSelection.event;this.onDidChangeVisibility=this._onDidChangeVisibility.event;this.onDidFilterStateChange=this._onDidFilterStateChange.event;this.onDidCursorMoved=this._onDidCursorMoved.event;this.retryTimers=0;this.renderedItems=[];this.nodesMap=new Map;this.mutex=new Oi;this.disposables=[];this.lineState={titleCount:0,messageCount:0};this.loadConfiguration(),b.onDidChangeConfiguration(this.loadConfiguration,this,this.disposables),t.enableFilter&&(this.filter=new jp(this.nvim,[this.keys.selectNext,this.keys.selectPrevious,this.keys.invoke]));let i=TR;TR=TR+1,this.bufname=`CocTree${i}`,this.tooltipFactory=k.createFloatFactory({modes:["n"]}),this.provider=t.treeDataProvider,this.leafIndent=t.disableLeafIndent!==!0,this.winfixwidth=t.winfixwidth!==!1,this.autoWidth=t.autoWidth===!0;let r;Object.defineProperty(this,"message",{set:l=>{r=l?l.replace(/\r?\n/g," "):void 0,this.updateHeadLines()},get:()=>r});let o=e.replace(/\r?\n/g," ");Object.defineProperty(this,"title",{set:l=>{o=l?l.replace(/\r?\n/g," "):void 0,this.updateHeadLines()},get:()=>o});let s;Object.defineProperty(this,"description",{set:l=>{s=l?l.replace(/\r?\n/g," "):void 0,this.updateHeadLines()},get:()=>s});let a;Object.defineProperty(this,"filterText",{set:l=>{let{titleCount:u,messageCount:c}=this.lineState,d=u+c;if(l!=null){let h=[{lnum:d,colStart:de(l),colEnd:de(l)+1,hlGroup:"Cursor"}];this.renderedItems=[],this.updateUI([l+" "],h,d,-1,!0),this.doFilter(l)}else a!=null&&this.updateUI([],[],d,d+1);a=l},get:()=>a}),this.provider.onDidChangeTreeData&&this.provider.onDidChangeTreeData(this.onDataChange,this,this.disposables),_.on("BufUnload",l=>{if(l!=this.bufnr)return;let u=this.winid!=null;this.winid=void 0,this.bufnr=void 0,u&&this._onDidChangeVisibility.fire({visible:!1}),this.dispose()},null,this.disposables),_.on("WinClosed",l=>{this.winid===l&&(this.winid=void 0,this._onDidChangeVisibility.fire({visible:!1}))},null,this.disposables),_.on("BufWinLeave",(l,u)=>{l==this.bufnr&&u==this.winid&&(this.winid=void 0,this._onDidChangeVisibility.fire({visible:!1}))},null,this.disposables),k.onDidTabClose(l=>{this._targetTabId===l&&this.dispose()},null,this.disposables),_.on("CursorHold",async(l,u)=>{l==this.bufnr&&await this.onHover(u[0])},null,this.disposables),_.on(["CursorMoved","BufEnter"],()=>{this.cancelResolve()},null,this.disposables),_.on("CursorMoved",(l,u)=>{if(l==this.bufnr){let c=this.getElementByLnum(u[0]-1);this._onDidCursorMoved.fire(c)}},null,this.disposables),_.on("WinEnter",l=>{if(l!=this.windowId||!this.filtering)return;let u=this.nvim.createBuffer(this.bufnr),c=this.startLnum-1,d=se(this.filterText).length,h=M.create(c,d,c,d+1);u.highlightRanges(SR,"Cursor",[h]),this.nvim.call("coc#prompt#start_prompt",[Xc],!0),this.redraw()},null,this.disposables),_.on("WinLeave",l=>{if(l!=this.windowId||!this.filtering)return;let u=this.nvim.createBuffer(this.bufnr);this.nvim.call("coc#prompt#stop_prompt",[Xc],!0),u.clearNamespace(SR,this.startLnum-1,this.startLnum)},null,this.disposables),this.disposables.push(this._onDidChangeVisibility,this._onDidCursorMoved,this._onDidChangeSelection,this._onDidCollapseElement,this._onDidExpandElement),this.filter&&(this.filter.onDidExit(l=>{this.nodesMap.clear(),this.filterText=void 0,this.itemsToFilter=void 0,l&&typeof this.provider.getParent=="function"?(this.renderedItems=[],this.reveal(l,{focus:!0})):(this.clearSelection(),this.render()),this._onDidFilterStateChange.fire(!1)}),this.filter.onDidUpdate(l=>{this.filterText=l}),this.filter.onDidKeyPress(async l=>{var d,h;let u=le(this.renderedItems),c=this.selection[0];if(l==""||l==this.keys.selectPrevious){let g=u.findIndex(y=>y.node==c),f=g==-1||g==0?u.length-1:g-1,m=(d=u[f])==null?void 0:d.node;m&&this.selectItem(m,!0)}if(l==""||l==this.keys.selectNext){let g=u.findIndex(y=>y.node==c),f=g==-1||g==u.length-1?0:g+1,m=(h=u[f])==null?void 0:h.node;m&&this.selectItem(m,!0)}if(l==""||l==this.keys.invoke){if(!c)return;await this.invokeCommand(c),this.filter.deactivate(c)}}))}get windowId(){return this.winid}get targetTabId(){return this._targetTabId}get targetWinId(){return this._targetWinId}get targetBufnr(){return this._targetBufnr}get startLnum(){let e=this.filterText==null?0:1;return this.lineState.messageCount+this.lineState.titleCount+e}get nvim(){return b.nvim}get filtering(){return this.filter!=null&&this.filter.activated}loadConfiguration(e){if(!e||e.affectsConfiguration("tree")){let t=b.getConfiguration("tree",null);this.config={openedIcon:t.get("openedIcon"," "),closedIcon:t.get("closedIcon"," ")},this.keys={close:t.get("key.close"),invoke:t.get("key.invoke"),toggle:t.get("key.toggle"),actions:t.get("key.actions"),collapseAll:t.get("key.collapseAll"),toggleSelection:t.get("key.toggleSelection"),activeFilter:t.get("key.activeFilter"),selectNext:t.get("key.selectNext"),selectPrevious:t.get("key.selectPrevious")},e&&this.visible&&this.render()}}async doFilter(e){let t=[],i=0,r=await this.mutex.acquire();try{if(!this.itemsToFilter){let c=[],d=async g=>{for(let f of g){c.push(f);let m=await Promise.resolve(this.provider.getChildren(f));te(m)||await d(m)}},h=await Promise.resolve(this.provider.getChildren());await d(h),this.itemsToFilter=c}let o=e.toLowerCase(),s=e.length===0;for(let c of this.itemsToFilter){let d=await this.getTreeItem(c),h=xR(d),g=0;if(s)d.label={label:h,highlights:[]};else{let y=da(e,o,0,h,h.toLowerCase(),0,{boostFullMatch:!0,firstMatchCanBeWeak:!0});if(!y)continue;g=y[0],d.label={label:h,highlights:Tv(h,y)}}d.collapsibleState=0;let{line:f,highlights:m}=this.getRenderedLine(d,i,0);t.push({level:0,node:c,line:f,index:i,score:g,highlights:m}),i+=1}t.sort((c,d)=>c.score!=d.score?d.score-c.score:c.index-d.index);let a=this.startLnum,l=[],u=this.renderedItems=t.map((c,d)=>(l.push(...c.highlights.map(h=>(h.lnum=a+d,h))),delete c.index,delete c.score,delete c.highlights,c));this.updateUI(u.map(c=>c.line),l,a,-1,!0),u.length?this.selectItem(u[0].node,!0):this.clearSelection(),this.redraw(),r()}catch(o){r(),CR.error("Error on tree filter:",o)}}async onHover(e){let t=this.getElementByLnum(e-1);if(!t||!this.nodesMap.has(t))return;let i=this.nodesMap.get(t),r=i.item;if(!r.tooltip&&!i.resolved&&(r=await this.resolveItem(t,r)),!r.tooltip)return;let s={filetype:Mn.is(r.tooltip)&&r.tooltip.kind==yr.Markdown?"markdown":"txt",content:Mn.is(r.tooltip)?r.tooltip.value:r.tooltip};await this.tooltipFactory.show([s])}async onClick(e){let{nvim:t}=this,[i,r]=await t.eval("[getline('.'),col('.')]"),o=zt(i,0,r-1),s=i[o.length],{openedIcon:a,closedIcon:l}=this.config;/^\s*$/.test(o)&&[a,l].includes(s)?await this.toggleExpand(e):await this.invokeCommand(e)}async invokeCommand(e){let t=this.nodesMap.get(e);if(!t)return;this.selectItem(e);let i=t.item;if(i.command||(i=await this.resolveItem(e,i)),!i||!i.command)throw new Error("Failed to resolve command from TreeItem.");await ie.execute(i.command)}async invokeActions(e){if(!e)return;if(this.selectItem(e),typeof this.provider.resolveActions!="function"){await k.showWarningMessage("No actions");return}let t=this.nodesMap.get(e),i=await Promise.resolve(this.provider.resolveActions(t.item,e));if(!i||i.length==0){await k.showWarningMessage("No actions available");return}let r=i.map(s=>s.title),o=await k.showMenuPicker(r,"Choose action");o!=-1&&await Promise.resolve(i[o].handler(e))}async onDataChange(e){if(this.filtering){this.itemsToFilter=void 0,await this.doFilter(se(this.filterText));return}if(this.clearSelection(),!e){await this.render();return}let t=await this.mutex.acquire();try{let i=this.renderedItems,r=i.findIndex(o=>o.node===e);if(r!=-1&&this.bufnr){let s=i[r].level,a=0;for(let d=r;ds)&&(a+=1)}let l=[],u=[],c=r+this.startLnum;await this.appendTreeNode(e,s,c,l,u),i.splice(r,a,...l),this.updateUI(l.map(d=>d.line),u,c,c+a)}t()}catch(i){let r=`Error on tree refresh: ${i}`;CR.error(r,i),this.nvim.errWriteLine("[coc.nvim] "+r),t()}}async resolveItem(e,t){if(typeof this.provider.resolveTreeItem=="function"){let i=this.resolveTokenSource=new p.CancellationTokenSource,r=i.token;if(t=await Promise.resolve(this.provider.resolveTreeItem(t,e,r)),i.dispose(),this.resolveTokenSource=void 0,r.isCancellationRequested)return}return this.nodesMap.set(e,{item:t,resolved:!0}),t}get visible(){return this.bufnr?this.winid!=null:!1}get valid(){return typeof this.bufnr=="number"}get selection(){return this._selection.slice()}async checkLines(){if(!this.bufnr)return!1;let t=await this.nvim.createBuffer(this.bufnr).lines,{titleCount:i,messageCount:r}=this.lineState;t=t.slice(i+r);let o=this.renderedItems.map(s=>s.line);return Fe(t,o)}async toggleExpand(e){let t=this.nodesMap.get(e);if(!t)return;let i=t.item,r=this.getItemLnum(e),o=r-this.startLnum,s=this.renderedItems[o];if(!s||i.collapsibleState==0){if(typeof this.provider.getParent=="function"){let c=await Promise.resolve(this.provider.getParent(e));c&&(await this.toggleExpand(c),this.focusItem(c))}return}let a=0;if(i.collapsibleState==2){let c=s.level;for(let d=o+1;dc.line),u,r,r+a+1),this.refreshSigns(),i.collapsibleState==1?this._onDidCollapseElement.fire({element:e}):this._onDidExpandElement.fire({element:e})}toggleSelection(e){if(!e)return;let t=this._selection.findIndex(i=>i===e);t!==-1?this.unselectItem(t):this.selectItem(e)}clearSelection(){if(!this.bufnr)return;this._selection=[],this.nvim.createBuffer(this.bufnr).unplaceSign({group:"CocTree"}),this._onDidChangeSelection.fire({selection:[]})}selectItem(e,t,i){let{nvim:r}=this,o=this.getItemLnum(e);if(o==null||!this.bufnr)return;let s=r.createBuffer(this.bufnr),a=this._selection.includes(e);!this.opts.canSelectMany||t?this._selection=[e]:a||this._selection.push(e),r.pauseNotification(),(!this.opts.canSelectMany||t)&&s.unplaceSign({group:"CocTree"}),r.call("coc#compat#execute",[this.winid,`normal! ${o+1}G`],!0),s.placeSign({id:DR+o,lnum:o+1,name:"CocTreeSelected",group:"CocTree"}),i||this.redraw(),r.resumeNotification(!1,!0),a||this._onDidChangeSelection.fire({selection:this._selection})}unselectItem(e){let t=this._selection[e],i=this.getItemLnum(t);if(i==null||!this.bufnr)return;this._selection.splice(e,1),this.nvim.createBuffer(this.bufnr).unplaceSign({group:"CocTree",id:DR+i}),this._onDidChangeSelection.fire({selection:this._selection})}focusItem(e){if(!this.winid)return;let t=this.getItemLnum(e);t!=null&&this.nvim.call("coc#compat#execute",[this.winid,`exe ${t+1}`],!0)}getElementByLnum(e){let t=this.renderedItems[e-this.startLnum];return t?t.node:void 0}getItemLnum(e){let t=this.renderedItems.findIndex(i=>i.node===e);if(t!=-1)return this.startLnum+t}async getTreeItem(e){let t,i=!1,r=this.nodesMap.get(e);r!=null&&(t=r.item,i=r.resolved);let o=await Promise.resolve(this.provider.getTreeItem(e));return t&&o&&t.collapsibleState!=0&&o.collapsibleState!=0&&(o.collapsibleState=t.collapsibleState),this.nodesMap.set(e,{item:o,resolved:i}),o}getRenderedLine(e,t,i){let{openedIcon:r,closedIcon:o}=this.config,s=[],{label:a,deprecated:l,description:u}=e,c=" ".repeat(i),d=(g,f)=>{let m=de(c);s.push({lnum:t,hlGroup:f,colStart:m,colEnd:m+de(g)})};switch(e.collapsibleState){case 2:{d(r,"CocTreeOpenClose"),c+=r+" ";break}case 1:{d(o,"CocTreeOpenClose"),c+=o+" ";break}default:c+=this.leafIndent?" ":""}if(e.icon){let{text:g,hlGroup:f}=e.icon;d(g,f),c+=g+" "}if(Op.is(a)&&Array.isArray(a.highlights)){let g=de(c);for(let f of a.highlights)s.push({lnum:t,hlGroup:"CocSearch",colStart:g+f[0],colEnd:g+f[1]})}let h=xR(e);return l&&d(h,"CocDeprecatedHighlight"),c+=h,u&&u.indexOf(` +`)==-1&&(c+=" ",d(u,"CocTreeDescription"),c+=u),{line:c,highlights:s}}async appendTreeNode(e,t,i,r,o){let s=await this.getTreeItem(e);if(!s)return 0;let a=1,l=this.getRenderedLine(s,i,t);if(o.push(...l.highlights),r.push({level:t,line:l.line,node:e}),s.collapsibleState==2){let u=t+1,c=await Promise.resolve(this.provider.getChildren(e));for(let d of le(c)){let h=await this.appendTreeNode(d,u,i+a,r,o);a=a+h}}return a}updateUI(e,t,i=0,r=-1,o=!1){if(!this.bufnr)return;let{nvim:s,winid:a}=this,l=s.createBuffer(this.bufnr);if(s.pauseNotification(),l.setOption("modifiable",!0,!0),l.setLines(e,{start:i,end:r,strictIndexing:!1},!0),this.autoWidth&&this.nvim.call("coc#window#adjust_width",[a],!0),t.length){let u=r==-1?-1:i+e.length;s.call("coc#highlight#update_highlights",[this.bufnr,SR,t,i,u],!0)}l.setOption("modifiable",!1,!0),o||this.redraw(),s.resumeNotification(!1,!0)}async reveal(e,t={}){if(this.filtering)return;let i=this.getItemLnum(e)!=null,{select:r,focus:o,expand:s}=t,a=e;if(typeof this.provider.getParent!="function")throw new Error("missing getParent function from provider for reveal.");if(!i)for(;a;){let l=await Promise.resolve(this.provider.getParent(a));if(l){let u=await this.getTreeItem(l);u.collapsibleState=2,a=l}else break}if(s){let l=await this.getTreeItem(e);if(l.collapsibleState!=0&&(l.collapsibleState=2,typeof s=="boolean"&&(s=1),s>1)){let u=Math.min(s,2),c=await Promise.resolve(this.provider.getChildren(e));for(;!te(c);){let d=[];for(let h of c){let g=await this.getTreeItem(h);if(g.collapsibleState!=0&&(g.collapsibleState=2,u>1)){let f=await Promise.resolve(this.provider.getChildren(h));d.push(...f)}}c=d,u=u-1}}}(!i||s)&&await this.render(),r!==!1&&this.selectItem(e),o&&this.focusItem(e)}updateHeadLines(e=!1){let{titleCount:t,messageCount:i}=this.lineState,r=e?-1:t+i,o=[],s=[];if(this.message&&(s.push({hlGroup:"MoreMsg",colStart:0,colEnd:de(this.message),lnum:0}),o.push(this.message),o.push("")),this.title){if(s.push({hlGroup:"CocTreeTitle",colStart:0,colEnd:de(this.title),lnum:o.length}),this.description){let a=de(this.title)+1;s.push({hlGroup:"Comment",colStart:a,colEnd:a+de(this.description),lnum:o.length})}o.push(this.title+(this.description?" "+this.description:""))}this.lineState.messageCount=this.message?2:0,this.lineState.titleCount=this.title?1:0,this.updateUI(o,s,0,r),e||this.refreshSigns()}refreshSigns(){let{selection:e,nvim:t,bufnr:i}=this;if(!e.length||!i)return;let r=t.createBuffer(i);t.pauseNotification(),r.unplaceSign({group:"CocTree"});for(let o of e){let s=this.getItemLnum(o);s!=null&&r.placeSign({id:DR+s,lnum:s+1,name:"CocTreeSelected",group:"CocTree"})}t.resumeNotification(!1,!0)}async render(){if(!this.bufnr)return;let e=await this.mutex.acquire();try{let t=[],i=[],{startLnum:r}=this,o=await Promise.resolve(this.provider.getChildren()),s=0,a=r,l=[];if(te(o))this.message="No results";else{this.message=="No results"&&(this.message="");for(let c of o){let d=await this.appendTreeNode(c,s,a,l,i);a+=d}}t.push(...l.map(c=>c.line)),this.renderedItems=l;let u=this.startLnum-r;i.forEach(c=>c.lnum=c.lnum+u),this.updateUI(t,i,this.startLnum,-1),this._onDidRefrash.fire(),this.retryTimers=0,e()}catch(t){CR.error("Error on render",t),this.renderedItems=[],this.nodesMap.clear(),this.lineState={titleCount:0,messageCount:1},e();let i=`${t}`.replace(/\r?\n/g," ");if(this.updateUI([i],[{hlGroup:"WarningMsg",colStart:0,colEnd:de(i),lnum:0}]),this.retryTimers==vde)return;this.timer=setTimeout(()=>{this.retryTimers=this.retryTimers+1,this.render()},yde)}}async show(e="belowright 30vs",t=!0){let{nvim:i}=this,[r,o]=await i.eval('[bufnr("%"),win_getid()]');this._targetBufnr=r,this._targetWinId=o;let s={command:e,bufname:this.bufname,viewId:this.viewId.replace(/"/g,'\\"'),bufnr:ye(this.bufnr,-1),winid:ye(this.winid,-1),bufhidden:ye(this.opts.bufhidden,"wipe"),canSelectMany:this.opts.canSelectMany===!0,winfixwidth:this.winfixwidth===!0},[a,l,u]=await i.call("coc#ui#create_tree",[s]);if(this.bufnr=a,this.winid=l,this._targetTabId=u,l!=s.winid&&this._onDidChangeVisibility.fire({visible:!0}),a==s.bufnr)return!0;this.registerKeymaps(),this.updateHeadLines(!0);let c=this.render();return t&&await c,!0}registerLocalKeymap(e,t,i,r=!1){this.bufnr?this.addLocalKeymap(e,t,i,r):this._keymapDefs.push({mode:e,key:t,fn:i,notify:r})}addLocalKeymap(e,t,i,r=!0){!t||b.registerLocalKeymap(this.bufnr,e,t,async()=>{let o=await this.nvim.call("line",["."]),s=this.getElementByLnum(o-1);await Promise.resolve(i(s))},r)}registerKeymaps(){let{toggleSelection:e,actions:t,close:i,invoke:r,toggle:o,collapseAll:s,activeFilter:a}=this.keys,{nvim:l,_keymapDefs:u}=this;for(this.disposables.push(b.registerLocalKeymap(this.bufnr,"n","",()=>{l.call("win_gotoid",[this._targetWinId],!0)},!0)),this.addLocalKeymap("n","",async c=>{c&&await this.onClick(c)}),this.filter&&this.addLocalKeymap("n",a,async()=>{this.nvim.command(`exe ${this.startLnum}`,!0),this.filter.active(),this.filterText="",this._onDidFilterStateChange.fire(!0)}),this.addLocalKeymap("n",e,c=>this.toggleSelection(c)),this.addLocalKeymap("n",r,c=>this.invokeCommand(c)),this.addLocalKeymap("n",t,c=>this.invokeActions(c)),this.addLocalKeymap("n",o,c=>this.toggleExpand(c)),this.addLocalKeymap("n",s,()=>this.collapseAll()),this.addLocalKeymap("n",i,()=>this.hide());u.length;){let c=u.pop();this.addLocalKeymap(c.mode,c.key,c.fn,c.notify)}}hide(){this.nvim.call("coc#window#close",[this.winid],!0),this.redraw(),this.winid=void 0,this._onDidChangeVisibility.fire({visible:!1})}redraw(){var e;(b.isVim||((e=this.filter)==null?void 0:e.activated))&&this.nvim.command("redraw",!0)}async collapseAll(){for(let e of this.nodesMap.values()){let t=e.item;t.collapsibleState==2&&(t.collapsibleState=1)}await this.render()}cancelResolve(){this.resolveTokenSource&&(this.resolveTokenSource.cancel(),this.resolveTokenSource=void 0)}dispose(){var t;if(!this.provider)return;this.timer&&clearTimeout(this.timer),this.cancelResolve();let{bufnr:e}=this;this.winid&&this._onDidChangeVisibility.fire({visible:!1}),e&&this.nvim.command(`silent! bwipeout! ${e}`,!0),this._keymapDefs=[],this.winid=void 0,this.bufnr=void 0,(t=this.filter)==null||t.dispose(),this._selection=[],this.itemsToFilter=[],this.tooltipFactory.dispose(),this.renderedItems=[],this.nodesMap.clear(),this.provider=void 0,this._onDispose.fire(),this._onDispose.dispose(),Y(this.disposables)}}});var kR,k,We=D(()=>{"use strict";Ek();hZ();pZ();vZ();xZ();ql();Be();$();kR=class{constructor(){this.highlights=new ew;this.terminalManager=new rp;this.dialogs=new Qv;this.notifications=new tw(this.dialogs),Object.defineProperty(this.highlights,"nvim",{get:()=>this.nvim}),Object.defineProperty(this.dialogs,"nvim",{get:()=>this.nvim}),Object.defineProperty(this.dialogs,"configuration",{get:()=>this.workspace.initialConfiguration}),Object.defineProperty(this.notifications,"nvim",{get:()=>this.nvim}),Object.defineProperty(this.notifications,"configuration",{get:()=>this.workspace.initialConfiguration}),Object.defineProperty(this.notifications,"statusLine",{get:()=>this.workspace.statusLine})}init(e){this.highlights.checkMarkers=this.workspace.has("nvim-0.5.1")||e.isVim}get activeTextEditor(){return this.workspace.editors.activeTextEditor}get visibleTextEditors(){return this.workspace.editors.visibleTextEditors}get onDidTabClose(){return this.workspace.editors.onDidTabClose}get onDidChangeActiveTextEditor(){return this.workspace.editors.onDidChangeActiveTextEditor}get onDidChangeVisibleTextEditors(){return this.workspace.editors.onDidChangeVisibleTextEditors}get terminals(){return this.terminalManager.terminals}get onDidOpenTerminal(){return this.terminalManager.onDidOpenTerminal}get onDidCloseTerminal(){return this.terminalManager.onDidCloseTerminal}async createTerminal(e){return await this.terminalManager.createTerminal(this.nvim,e)}async runTerminalCommand(e,t,i=!1){return await this.terminalManager.runTerminalCommand(this.nvim,e,t,i)}async openTerminal(e,t){return await this.terminalManager.openTerminal(this.nvim,e,t)}showMessage(e,t="more"){this.notifications.echoMessages(e,t)}createOutputChannel(e){return la.create(e,this.nvim)}showOutputChannel(e,t){let i=this.configuration.get("workspace.openOutputCommand","vs");la.show(e,i,t)}async echoLines(e,t=!1){await aZ(this.nvim,this.workspace.env,e,t)}getCursorPosition(){return ip(this.nvim)}async moveTo(e){await rZ(this.nvim,e,this.workspace.env.isVim)}getSelectedRange(e){return uZ(this.nvim,e)}async selectRange(e){await cZ(this.nvim,e,this.nvim.isVim)}getOffset(){return oZ(this.nvim)}getCursorScreenPosition(){return sZ(this.nvim)}createTreeView(e,t){let i=(Np(),Jo(i3)).default;return new i(e,t)}createStatusBarItem(e=0,t={}){return this.workspace.statusLine.createStatusBarItem(e,t.progress)}async diffHighlights(e,t,i,r,o){return this.highlights.diffHighlights(e,t,i,r,o)}createFloatFactory(e){let t=this.workspace.initialConfiguration,i=$e(t.get("floatFactory.floatConfig")),r=this.workspace.configurations.markdownPreference;return iZ(this.workspace.nvim,Object.assign({...r,maxWidth:80},e),i)}async showQuickpick(e,t="Choose by number"){return await this.showMenuPicker(e,{title:t,position:"center"})}async showQuickPick(e,t,i=p.CancellationToken.None){return await this.dialogs.showQuickPick(e,t,i)}async createQuickPick(e={}){return await this.dialogs.createQuickPick(e)}async showMenuPicker(e,t,i){return await this.dialogs.showMenuPicker(e,t,i)}async showPrompt(e){return await this.dialogs.showPrompt(e)}async showDialog(e){return await this.dialogs.showDialog(e)}async requestInput(e,t,i){return await this.dialogs.requestInput(e,this.workspace.env,t,i)}async createInputBox(e,t,i){return await this.dialogs.createInputBox(e,t,i)}async showPickerDialog(e,t,i){return await this.dialogs.showPickerDialog(e,t,i)}async showInformationMessage(e,...t){let i=Error().stack;return await this.notifications._showMessage("Info",e,t,i)}async showWarningMessage(e,...t){let i=Error().stack;return await this.notifications._showMessage("Warning",e,t,i)}async showErrorMessage(e,...t){let i=Error().stack;return await this.notifications._showMessage("Error",e,t,i)}async showNotification(e){let t=Error().stack;await this.notifications.showNotification(e,t)}async withProgress(e,t){return this.notifications.withProgress(e,t)}async applyDiffHighlights(e,t,i,r,o=!1){return this.highlights.applyDiffHighlights(e,t,i,r,o)}get configuration(){return this.workspace.initialConfiguration}dispose(){this.terminalManager.dispose()}},k=new kR});var Gc,Ta=D(()=>{"use strict";Gc=(i=>(i[i.Native=0]="Native",i[i.Remote=1]="Remote",i[i.Service=2]="Service",i))(Gc||{})});async function r3(n,e,t,i){if(e=="vim")return(await n.eval(t)).toString();if(e=="shell")return(await(0,st.promisify)(n3.exec)(t)).stdout.replace(/\s*$/,"");let r=[`snip._reset("${Hp(i)}")`];r.push(...t.split(/\r?\n/).map(s=>s.replace(/\t/g," "))),await zc(n,r);let o=await n.call("pyxeval","str(snip.rv)");return se(o)}function Ew(n){let{range:e,regex:t,line:i}=n,r=[];if(t&&e!=null){let o=i.slice(e.start.character,e.end.character);r.push(`pattern = re.compile("${Hp(t)}")`),r.push(`match = pattern.search("${Hp(o)}")`)}else r.push("match = None");return r.join(` +`)}function o3(n){let{range:e,context:t,line:i}=n,r=["import re, os, vim, string, random",`path = vim.eval('expand("%:p")') or ""`,"fn = os.path.basename(path)"];t?(r.push("snip = ContextSnippet()"),r.push(`context = ${t}`)):r.push("context = True");let o=`(${e.start.line},${Buffer.byteLength(i.slice(0,e.start.character))})`,s=`(${e.start.line},${Buffer.byteLength(i.slice(0,e.end.character))})`,a=i.match(/^\s*/)[0];return r.push(`snip = SnippetUtil("${Hp(a)}", ${o}, ${s}, context)`),r}async function zc(n,e){try{await n.command(`pyx ${wde(e.join(` +`))}`)}catch(t){let i=new Error(t.message);throw i.stack=`Error on execute python code: +${e.join(` +`)} +`+t.stack,i}}function Bp(n){let e=Object.keys(n);if(e.length==0)return"t = ()";let t=Math.max.apply(null,e.map(r=>Number(r))),i=new Array(t).fill('""');for(let[r,o]of Object.entries(n))i[r]=`"${Hp(o)}"`;return`t = (${i.join(",")},)`}function wde(n,e=!1){if(!ai&&e===!1)return n;let t=["import traceback, vim","vim.vars['errmsg'] = ''","try:"];return t.push(...n.split(` +`).map(i=>" "+i)),t.push("except Exception as e:"),t.push(" vim.vars['errmsg'] = traceback.format_exc()"),t.join(` +`)}function Hp(n){return n.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}function s3(n){if(n.indexOf("\\z")!==-1)throw new Error("pattern \\z not supported");if(n.indexOf("(?s)")!==-1)throw new Error("pattern (?s) not supported");if(n.indexOf("(?x)")!==-1)throw new Error("pattern (?x) not supported");if(n.indexOf(` +`)!==-1)throw new Error("pattern \\n not supported");if(Cde.test(n))throw new Error("pattern (?id/name)yes-pattern|no-pattern not supported");return n.replace(kde,(e,t)=>e.startsWith("(?#")?"":e.startsWith("(?P<")?"(?"+e.slice(3):e.startsWith("(?P=")?`\\k<${t}>`:"^")}var n3,xde,Cde,Sde,Dde,Tde,kde,PR=D(()=>{"use strict";n3=require("child_process");Jt();ce();pe();xde=/\\A/,Cde=/\(\?\(\w+\).+\|/,Sde=/\(\?#.*?\)/,Dde=/\(\?P<\w+>.*?\)/,Tde=/\(\?P=(\w+)\)/,kde=new RegExp(`${Sde.source}|${xde.source}|${Dde.source}|${Tde.source}`,"g")});function l3(n,e){let t=[...n];for(;t.length>0;){let i=t.shift();if(!e(i))break;t.unshift(...i.children)}}function Ede(n,e=[]){let t="",i=n.length,r=0,o=!1,s=!1;for(;r{"use strict";Ce();ee();Se();Rg();ce();pe();PR();Pde=J("snippets-parser"),a3=["VISUAL","YANK","UUID"],Rde=["d","g","i","m","s","u","y"],ao=class{static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return e===95||e>=97&&e<=122||e>=65&&e<=90}constructor(){this.text("")}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};let e=this.pos,t=0,i=this.value.charCodeAt(e),r;if(r=ao._table[i],typeof r=="number")return this.pos+=1,{type:r,pos:e,len:1};if(ao.isDigitCharacter(i)){r=8;do t+=1,i=this.value.charCodeAt(e+t);while(ao.isDigitCharacter(i));return this.pos+=t,{type:r,pos:e,len:t}}if(ao.isVariableCharacter(i)){r=9;do i=this.value.charCodeAt(e+ ++t);while(ao.isVariableCharacter(i)||ao.isDigitCharacter(i));return this.pos+=t,{type:r,pos:e,len:t}}r=10;do t+=1,i=this.value.charCodeAt(e+t);while(!isNaN(i)&&typeof ao._table[i]>"u"&&!ao.isDigitCharacter(i)&&!ao.isVariableCharacter(i));return this.pos+=t,{type:r,pos:e,len:t}}},Iw=ao;Iw._table={[36]:0,[58]:1,[44]:2,[123]:3,[125]:4,[92]:5,[47]:6,[124]:7,[43]:11,[45]:12,[63]:13,[40]:15,[41]:16,[96]:17,[33]:18};Lo=class{constructor(){this._children=[]}appendChild(e){return e instanceof At&&this._children[this._children.length-1]instanceof At?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}setOnlyChild(e){e.parent=this,this._children=[e]}replaceChildren(e){for(let t of e)t.parent=this;this._children=e}get children(){return this._children}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof Vc)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}},At=class extends Lo{constructor(t){super();this.value=t}static escape(t){return t.replace(/\$|}|\\/g,"\\$&")}toString(){return this.value}toTextmateString(){return At.escape(this.value)}len(){return this.value.length}clone(){return new At(this.value)}},Io=class extends Lo{constructor(t,i,r){super();this.code=t;this.kind=i;this._value="";this._related=[];if(i==="python"){let{_related:o}=this,s,a=/\bt\[(\d+)\]/g;for(;s=a.exec(t),s!=null;){let l=parseInt(s[1],10);o.includes(l)||o.push(l)}}typeof r=="string"&&(this._value=r)}get related(){return this._related}update(t){if(this.kind!=="python")return;let i=new Set;this.code=this.code.replace(/\bt\[(\d+)\]/g,(r,o)=>{let s=Number(o),a=t.has(s)?t.get(s):s;return i.add(a),`t[${a}]`}),this._related=Array.from(i)}get index(){if(this.parent instanceof Rt)return this.parent.index}async resolve(t){if(!this.code.length)return;let i=await r3(t,this.kind,this.code,ye(this._value,""));i!=null&&(this._value=i)}len(){return this._value.length}toString(){return this._value}get value(){return this._value}toTextmateString(){let t="";return this.kind=="python"?t="!p ":this.kind=="shell"?t="":this.kind=="vim"&&(t="!v "),"`"+t+this.code+"`"}clone(){return new Io(this.code,this.kind,this.value)}},Lw=class extends Lo{},Rt=class extends Lw{constructor(t){super();this.index=t;this.primary=!1}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof Kc?this._children[0]:void 0}toTextmateString(){let t="";return this.transform&&(t=this.transform.toTextmateString()),this.children.length===0&&!this.transform?`$${this.index}`:this.children.length===0||this.children.length==1&&this.children[0].toTextmateString()==""?`\${${this.index}${t}}`:this.choice?`\${${this.index}|${this.choice.toTextmateString()}|${t}}`:`\${${this.index}:${this.children.map(i=>i.toTextmateString()).join("")}${t}}`}clone(){let t=new Rt(this.index);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map(i=>i.clone()),t}},Kc=class extends Lo{constructor(){super(...arguments);this.options=[]}appendChild(t){return t instanceof At&&(t.parent=this,this.options.push(t)),this}toString(){return this.options[0].value}toTextmateString(){return this.options.map(t=>t.value.replace(/\||,/g,"\\$&")).join(",")}len(){return this.options[0].len()}clone(){let t=new Kc;for(let i of this.options)t.appendChild(i);return t}},qp=class extends Lo{constructor(){super(...arguments);this.ascii=!1;this.ultisnip=!1}resolve(t){let i=!1,r=t.replace(this.regexp,(...o)=>(i=!0,this._replace(o.slice(0,-2))));return!i&&this._children.some(o=>o instanceof Qn&&Boolean(o.elseValue))&&(r=this._replace([])),r}_replace(t){let i="",r=[];for(let o of this._children)if(o instanceof Qn){let s=o.resolve(t[o.index]||"");if(this.ultisnip&&s.indexOf("\\")!==-1){let a=i.length;r.push(...fY(s,"\\").map(l=>l+a))}i+=s}else o instanceof Qc?i+=o.resolve(t[o.index]):i+=o.toString();return this.ascii&&(i=al(i)),this.ultisnip?Ede(i,r):i}toString(){return""}toTextmateString(){let t=this.children.map(i=>i.toTextmateString()).join("");return this.ultisnip&&(t=t.replace(/\\\\(\w)/g,(i,r)=>["u","l","U","L","E","n","t"].includes(r)?"\\"+r:i)),`/${this.regexp.source}/${t}/${(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")}`}clone(){let t=new qp;return t.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),t._children=this.children.map(i=>i.clone()),t}},Qc=class extends Lo{constructor(t,i,r){super();this.index=t;this.ifValue=i;this.elseValue=r}resolve(t){return t?this.ifValue:this.elseValue}toTextmateString(){return"(?"+this.index+":"+this.ifValue+(this.elseValue?":"+this.elseValue:"")+")"}clone(){return new Qc(this.index,this.ifValue,this.elseValue)}},Qn=class extends Lo{constructor(t,i,r,o){super();this.index=t;this.shorthandName=i;this.ifValue=r;this.elseValue=o}resolve(t){return this.shorthandName==="upcase"?t?t.toLocaleUpperCase():"":this.shorthandName==="downcase"?t?t.toLocaleLowerCase():"":this.shorthandName==="capitalize"?t?t[0].toLocaleUpperCase()+t.substr(1):"":this.shorthandName==="pascalcase"?t?this._toPascalCase(t):"":Boolean(t)&&typeof this.ifValue=="string"?this.ifValue:!t&&typeof this.elseValue=="string"?this.elseValue:t||""}_toPascalCase(t){let i=t.match(/[a-z]+/gi);return i?i.map(r=>r.charAt(0).toUpperCase()+r.substr(1).toLowerCase()).join(""):t}toTextmateString(){let t="${";return t+=this.index,this.shorthandName?t+=`:/${this.shorthandName}`:this.ifValue&&this.elseValue?t+=`:?${this.ifValue}:${this.elseValue}`:this.ifValue?t+=`:+${this.ifValue}`:this.elseValue&&(t+=`:-${this.elseValue}`),t+="}",t}clone(){return new Qn(this.index,this.shorthandName,this.ifValue,this.elseValue)}},lo=class extends Lw{constructor(t,i=!1){super();this.name=t;this._resolved=i}get resolved(){return this._resolved}async resolve(t){let i=await t.resolve(this);if(this._resolved=!0,i&&i.includes(` +`)){let r="";this.snippet.walk(u=>{if(u==this)return!1;if(u instanceof At){let c=u.toString().split(/\r?\n/);r=c[c.length-1].match(/^\s*/)[0]}return!0});let o=i.split(` +`),a=o.filter(u=>u.length>0).map(u=>u.match(/^\s*/)[0]).reduce((u,c)=>uc==0||u.length==0||!u.startsWith(" ".repeat(a))?u:r+u.slice(a)).join(` +`)}return this.transform&&(i=this.transform.resolve(se(i))),i!=null?(this._children=[new At(i.toString())],!0):!1}toTextmateString(){let t="";return this.transform&&(t=this.transform.toTextmateString()),this.children.length===0?`\${${this.name}${t}}`:`\${${this.name}:${this.children.map(i=>i.toTextmateString()).join("")}${t}}`}clone(){let t=new lo(this.name,this.resolved);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map(i=>i.clone()),t}};Vc=class extends Lo{constructor(t){super();this.ultisnip=t===!0}get hasPython(){return this.ultisnip?this.pyBlocks.length>0:!1}get hasCodeBlock(){if(!this.ultisnip)return!1;let{pyBlocks:t,otherBlocks:i}=this;return t.length>0||i.length>0}get values(){if(this._values)return this._values;let t={},i=0;this.placeholders.forEach(r=>{i=Math.max(r.index,i),r.transform==null&&(r.primary||t[r.index]===void 0)&&(t[r.index]=r.toString())});for(let r=0;r<=i;r++)t[r]===void 0&&(t[r]="");return this._values=t,t}get orderedPyIndexBlocks(){let t=[],i=this.pyBlocks.filter(a=>typeof a.index=="number");if(i.length===0)return t;let r=i.map(a=>a.index),o=[],s=a=>{let{related:l}=a;return l.length==0||l.every(u=>!r.includes(u)||o.includes(u))?(o.push(a.index),t.push(a),!0):!1};for(;i.length>0;){let a=!1;for(let l of i)s(l)&&(a=!0);if(!a)break;i=i.filter(l=>!o.includes(l.index))}return t}async evalCodeBlocks(t,i){let{pyBlocks:r,otherBlocks:o}=this;if(await Promise.all(o.map(s=>{let a=s.value;return s.resolve(t).then(()=>{s.parent instanceof Rt&&a!==s.value&&this.onPlaceholderUpdate(s.parent)})})),r.length){let s=Bp(this.values);await zc(t,[...i,s]);for(let l of r){let u=l.value;await l.resolve(t),u!==l.value&&l.parent instanceof Rt&&(this.onPlaceholderUpdate(l.parent),await zc(t,[Bp(this.values)]))}for(let l of this.orderedPyIndexBlocks)await this.updatePyIndexBlock(t,l);let a=r.filter(l=>l.index===void 0&&l.related.length>0);for(let l of a)await l.resolve(t)}}async updatePythonCodes(t,i){let r;if(i instanceof Rt)r=i.index;else{for(;i.parent;){if(i instanceof Rt){r=i.index;break}i=i.parent}if(r===void 0)return}let o=this.getDependentPyIndexBlocks(r);await zc(t,[Bp(this.values)]);for(let a of o)await this.updatePyIndexBlock(t,a);let s=this.pyBlocks.filter(a=>a.index===void 0&&a.related.length>0);for(let a of s)await a.resolve(t)}getDependentPyIndexBlocks(t){let i=[],r=[],o=this.pyBlocks.filter(a=>typeof a.index=="number"),s=a=>{let l=o.filter(u=>!r.includes(u.index)&&u.related.includes(a));l.length>0&&(i.push(...l),l.forEach(u=>{s(u.index)}))};return s(t),i}async updatePyIndexBlock(t,i){let r=i.value;await i.resolve(t),r!==i.value&&(i.parent instanceof Rt&&this.onPlaceholderUpdate(i.parent),await zc(t,[Bp(this.values)]))}get placeholderInfo(){if(!this._placeholders){let t=[],i=[],r=[],o=[];this.walk(s=>{if(s instanceof Rt)o.push(s);else if(s instanceof lo){let a=s.name.charCodeAt(0);(a<65||a>90)&&t.push(s)}else s instanceof Io&&(s.kind==="python"?i.push(s):r.push(s));return!0}),this._placeholders={placeholders:o,pyBlocks:i,otherBlocks:r,variables:t}}return this._placeholders}get variables(){return this.placeholderInfo.variables}get placeholders(){return this.placeholderInfo.placeholders}get pyBlocks(){return this.placeholderInfo.pyBlocks}get otherBlocks(){return this.placeholderInfo.otherBlocks}get maxIndexNumber(){let{placeholders:t}=this;return t.reduce((i,r)=>Math.max(i,r.index),0)}get first(){let{placeholders:t,variables:i}=this,[r,o]=dY(t.filter(s=>!s.transform),s=>s.index!==0);if(r.length){let s=Math.min.apply(null,r.map(l=>l.index)),a=r.filter(l=>l.index==s);return a.find(l=>l.primary)??a[0]}return i.length?i[0]:o.find(s=>s.primary)??o[0]}insertSnippet(t,i,r,o){let s=i instanceof Rt?i.index:this.maxIndexNumber+1,[a,l]=r,u=o?Ew(o):void 0,c=new ws(!!o,u).parse(t,!0),d=c.maxIndexNumber+1,h=new Map;for(let y of c.placeholders){let w=y.index;y.isFinalTabstop?y.index=d+s:y.index=y.index+s,h.set(w,y.index)}o&&c.pyBlocks.forEach(y=>{y.update(h)});let g=new Map;this.walk(y=>{if(y instanceof Rt&&y.index>s){let w=y.index;y.index=y.index+d,g.set(w,y.index)}return!0}),this.hasPython&&this.walk(y=>(y instanceof Io&&y.update(g),!0));let f=c.first,m=c.children.slice();return a&&m.unshift(new At(a)),l&&m.push(new At(l)),this.replace(i,m),f}async update(t,i,r){this.resetMarker(i,r),this.hasPython&&await this.updatePythonCodes(t,i)}deleteText(t,i){let r=0,o,s=t+i,a=0;if(this.walk(g=>{let f=g.len();return g instanceof At&&t>=r&&r+f>=s?(o=g,a=t-r,!1):(r+=f,!0)}),!o)return!1;let l=o.parent,u=o.value,c=u.slice(0,a)+u.slice(a+i),d=l.children.slice(),h=d.indexOf(o);return d.splice(h,1,new At(c)),l.replaceChildren(d),!0}resetMarker(t,i){let r;t instanceof Rt?r=this.placeholders.filter(o=>o.index==t.index):r=this.variables.filter(o=>o.name==t.name);for(let o of r){let s=o.transform?o.transform.resolve(i):i;o.setOnlyChild(new At(s||""))}this.synchronizeParents(r),this.reset()}onPlaceholderUpdate(t){let i=t.toString(),r;t instanceof Rt?(this.values[t.index]=i,r=this.placeholders.filter(o=>o.index==t.index)):r=this.variables.filter(o=>o.name==t.name);for(let o of r){if(o===t)continue;let s=o.transform?o.transform.resolve(i):i;o.setOnlyChild(new At(se(s)))}this.synchronizeParents(r)}synchronizeParents(t){let i=[];t.forEach(r=>{let o=r.parent;o instanceof Rt&&!i.includes(o)&&i.push(o)}),i.forEach(r=>{this.onPlaceholderUpdate(r)})}offset(t){let i=0,r=!1;return this.walk(o=>o===t?(r=!0,!1):(i+=o.len(),!0)),r?i:-1}fullLen(t){let i=0;return l3([t],r=>(i+=r.len(),!0)),i}getTextBefore(t,i){let r="",o=s=>{let a=s.parent;if(!a)return;let l="";for(let u of a.children){if(u===s)break;l=l+u.toString()}r=l+r,a!=i&&o(a)};return o(t),r}enclosingPlaceholders(t){let i=[],{parent:r}=t;for(;r;)r instanceof Rt&&i.push(r),r=r.parent;return i}async resolveVariables(t){let i=[];this.walk(r=>(r instanceof lo&&!r.resolved&&i.push(r),!0)),i.length&&(await Promise.all(i.map(r=>r.resolve(t))),this.synchronizeParents(i))}appendChild(t){return this.reset(),super.appendChild(t)}replace(t,i){t.replaceChildren(i),(t instanceof Rt||t instanceof lo)&&this.onPlaceholderUpdate(t),this.reset()}reset(){this._placeholders=void 0,this._values=void 0}toTextmateString(){return this.children.reduce((t,i)=>t+i.toTextmateString(),"")}clone(){let t=new Vc(this.ultisnip);return t._children=this.children.map(i=>i.clone()),t}walk(t){l3(this.children,t)}},ws=class{constructor(e,t){this.ultisnip=e;this.matchCode=t;this._scanner=new Iw}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}static isPlainText(e){let t=new ws().parse(e.replace(/\$0$/,""),!1);return t.children.length==1&&t.children[0]instanceof At}text(e){return this.parse(e,!1).toString()}parse(e,t){this._scanner.text(e),this._token=this._scanner.next();let i=new Vc(this.ultisnip);for(;this._parse(i););let r=new Map,o=[],s=[],a=!1;i.walk(c=>(c instanceof Rt&&(c.index==0&&(a=!0),c.children.some(d=>d instanceof Rt)?s.push(c):!r.has(c.index)&&c.children.length>0?(c.primary=!0,r.set(c.index,c.toString())):o.push(c)),!0));let l=s.map(c=>c.index);for(let c of o)if(r.has(c.index)){let d=r.get(c.index),h=new At(c.transform?c.transform.resolve(d):d);c.setOnlyChild(h)}else if(!l.includes(c.index))if(c.transform){let d=new At(c.transform.resolve(""));c.setOnlyChild(d)}else c.primary=!0,r.set(c.index,"");let u=()=>{let c=new Set;for(let d of s)if(d.children.every(h=>!(h instanceof Rt)||r.has(h.index))){let h=d.toString();r.set(d.index,h);for(let g of o.filter(f=>f.index==d.index)){let f=new At(g.transform?g.transform.resolve(h):h);g.setOnlyChild(f)}c.add(d.index)}s=s.filter(d=>!c.has(d.index)),!(s.length==0||!c.size)&&u()};return u(),!a&&t&&i.appendChild(new Rt(0)),i}_accept(e,t){if(e===void 0||this._token.type===e){let i=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),i}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e,t=!1){if(this._token.type===14)return!1;let i=this._token,r;for(;this._token.type!==e||t&&r&&r.type===5;)if(t&&(r=this._token),this._token=this._scanner.next(),this._token.type===14)return!1;let o=this._scanner.value.substring(i.pos,this._token.pos);return this._token=this._scanner.next(),o}_parse(e){return this._parseEscaped(e)||this._parseCodeBlock(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return(t=this._accept(5,!0))?(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||this.ultisnip&&this._accept(3,!0)||this.ultisnip&&this._accept(17,!0)||t,e.appendChild(new At(t)),!0):!1}_parseTabstopOrVariableName(e){let t,i=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(/^\d+$/.test(t)?e.appendChild(new Rt(Number(t))):this.ultisnip&&!a3.includes(t)?e.appendChild(new At("$"+t)):e.appendChild(new lo(t)),!0):this._backTo(i)}_parseComplexPlaceholder(e){let t,i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(i);let o=new Rt(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new At("${"+t+":")),o.children.forEach(e.appendChild,e),!0}else if(o.index>0&&this._accept(7)){let s=new Kc;for(;;){if(this._parseChoiceElement(s)){if(this._accept(2))continue;if(this._accept(7)&&(o.appendChild(s),this._accept(4)))return e.appendChild(o),!0}return this._backTo(i),!1}}else return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(i)}_parseChoiceElement(e){let t=this._token,i=[];for(;!(this._token.type===2||this._token.type===7);){let r;if((r=this._accept(5,!0))?r=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||r:r=this._accept(void 0,!0),!r)return this._backTo(t),!1;i.push(r)}return i.length===0?(this._backTo(t),!1):(e.appendChild(new At(i.join(""))),!0)}_parseComplexVariable(e){let t,i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(i);if(this.ultisnip&&!a3.includes(t))return this._backTo(i);let o=new lo(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new At("${"+t+":")),o.children.forEach(e.appendChild,e),!0}else return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(i)}_parseTransform(e){let t=new qp;t.ultisnip=this.ultisnip===!0;let i="",r="";for(;!this._accept(6);){let s;if(s=this._accept(5,!0)){s=this._accept(6,!0)||s,i+=s;continue}if(this._token.type!==14){i+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let s;if(s=this._accept(5,!0)){s=this._accept(5,!0)||this._accept(6,!0)||s,t.appendChild(new At(s));continue}if(!(this._parseFormatString(t)||this._parseConditionString(t)||this._parseAnything(t)))return!1}let o=!1;for(;!this._accept(4);){if(this._token.type!==14){let s=this._accept(void 0,!0);s=="a"?o=!0:(Rde.includes(s)||Pde.error(`Unknown regex option: ${s}`),r+=s);continue}return!1}try{o&&(t.ascii=!0),this.ultisnip&&(i=s3(i)),t.regexp=new RegExp(i,r)}catch{return!1}return e.transform=t,!0}_parseConditionString(e){if(!this.ultisnip)return!1;let t=this._token;if(!this._accept(15))return!1;if(!this._accept(13))return this._backTo(t),!1;let i=this._accept(8,!0);if(!i)return this._backTo(t),!1;if(!this._accept(1))return this._backTo(t),!1;let r=this._until(16,!0);if(r){let o=0;for(;o!/^\s*$/.test(u)),!s.length)return!0;let a=s[0].match(/^\s*/)[0];a.length&&s.every(u=>u.startsWith(a))&&(s=s.map(u=>u.slice(a.length))),a==" "&&s[0].startsWith(a)&&(s[0]=s[0].slice(1));let l=new Io(o+s.join(` +`),"python");e.appendChild(l)}return!0}}return this._backTo(t),!1}_parseAnything(e){if(this._token.type!==14){let t=this._scanner.tokenText(this._token);return e.appendChild(new At(t)),this._accept(void 0),!0}return!1}},_de=[":","(",")","{","}"]});var Lde,Wp,Yp,RR=D(()=>{"use strict";Wp=class{constructor(){this[Lde]="LinkedMap";this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var e;return(e=this._head)==null?void 0:e.value}get last(){var e;return(e=this._tail)==null?void 0:e.value}has(e){return this._map.has(e)}get(e,t=0){let i=this._map.get(e);if(!!i)return t!==0&&this.touch(i,t),i.value}set(e,t,i=0){let r=this._map.get(e);if(r)r.value=t,i!==0&&this.touch(r,i);else{switch(r={key:e,value:t,next:void 0,previous:void 0},i){case 0:this.addItemLast(r);break;case 1:this.addItemFirst(r);break;case 2:this.addItemLast(r);break;default:this.addItemLast(r);break}this._map.set(e,r),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(!!t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let i=this._state,r=this._head;for(;r;){if(t?e.bind(t)(r.value,r.key,this):e(r.value,r.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");r=r.next}}keys(){let e=this,t=this._state,i=this._head,r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){let o={value:i.key,done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return r}values(){let e=this,t=this._state,i=this._head,r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){let o={value:i.value,done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return r}entries(){let e=this,t=this._state,i=this._head,r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){let o={value:[i.key,i.value],done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return r}[(Lde=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e===0){this.clear();return}let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}addItemFirst(e){!this._head&&!this._tail?this._tail=e:(e.next=this._head,this._head.previous=e),this._head=e,this._state++}addItemLast(e){!this._head&&!this._tail?this._head=e:(e.previous=this._tail,this._tail.next=e),this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head)e.next.previous=void 0,this._head=e.next;else if(e===this._tail)e.previous.next=void 0,this._tail=e.previous;else{let t=e.next,i=e.previous;t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!(t!==1&&t!==2))if(t===1){if(e===this._head)return;let i=e.next,r=e.previous;e===this._tail?(r.next=void 0,this._tail=r):(i.previous=r,r.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else{if(e===this._tail)return;let i=e.next,r=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=r,r.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}toJSON(){let e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){this.clear();for(let[t,i]of e)this.set(t,i)}},Yp=class extends Wp{constructor(t,i=1){super();this._limit=t,this._ratio=Math.min(Math.max(0,i),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get ratio(){return this._ratio}set ratio(t){this._ratio=Math.min(Math.max(0,t),1),this.checkTrim()}get(t,i=2){return super.get(t,i)}peek(t){return super.get(t,0)}set(t,i){return super.set(t,i,2),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}});function p3(n){return n.length>0&&n.charCodeAt(0){try{return new RegExp(t).test(e)}catch{return!1}})}function w3(n){return new Map([[ne.Text,n.text??"v"],[ne.Method,n.method??"f"],[ne.Function,n.function??"f"],[ne.Constructor,typeof n.constructor=="function"?"f":n["constructor"]??""],[ne.Field,n.field??"m"],[ne.Variable,n.variable??"v"],[ne.Class,n.class??"C"],[ne.Interface,n.interface??"I"],[ne.Module,n.module??"M"],[ne.Property,n.property??"m"],[ne.Unit,n.unit??"U"],[ne.Value,n.value??"v"],[ne.Enum,n.enum??"E"],[ne.Keyword,n.keyword??"k"],[ne.Snippet,n.snippet??"S"],[ne.Color,n.color??"v"],[ne.File,n.file??"F"],[ne.Reference,n.reference??"r"],[ne.Folder,n.folder??"F"],[ne.EnumMember,n.enumMember??"m"],[ne.Constant,n.constant??"v"],[ne.Struct,n.struct??"S"],[ne.Event,n.event??"E"],[ne.Operator,n.operator??"O"],[ne.TypeParameter,n.typeParameter??"T"]])}function x3(n,e,t){let{pre:i}=e;if(i.length===0||i[i.length-1]===" "||t.bufnr!=n||t.linenr!=e.lnum)return!0;let r=zt(t.line,0,t.col);return!i.startsWith(r)}function C3(n,e,t){let i=0,r;for(let o=e.length-1;o>=0;o--){let s=e.charCodeAt(o);if(!Ade(n,s,t)||r!==void 0&&!QP(r,s))break;i+=1,r=s}return i==0?"":e.slice(-i)}function Ade(n,e,t){return!(!n.isKeywordCode(e)||cv(e)||t&&e>=255)}function S3(n,e){let{filterText:t,abbr:i}=e,r=i.indexOf(t);if(r==-1)return-1;let o=r==0?0:rt(i,r);return n+o}function Nde(n){return n?!n.detail&&!n.description:!0}function Zp(n,e){return(n.insertTextFormat??e.insertTextFormat)===Sl.Snippet}function Hde(n,e){return Zp(n,e)||!te(n.additionalTextEdits)}function D3(n,e){for(let t=0;tt&&(o.start.character=t),o}function h3(n){let e=n.filterText,t=n.source.name,i=n.kind??"";return`${e}|${t}|${i}`}var g3,Fde,u3,Mde,c3,d3,jde,Mw,jw,Gl=D(()=>{"use strict";ae();VP();Fw();Se();Rg();Jt();Xe();RR();ce();Be();pe();Ta();g3=[10,13],Fde="$",u3="?",Mde=1114111,c3=100,d3="CocSymbolDefault",jde={[ne.Text]:"CocSymbolText",[ne.Method]:"CocSymbolMethod",[ne.Function]:"CocSymbolFunction",[ne.Constructor]:"CocSymbolConstructor",[ne.Field]:"CocSymbolField",[ne.Variable]:"CocSymbolVariable",[ne.Class]:"CocSymbolClass",[ne.Interface]:"CocSymbolInterface",[ne.Module]:"CocSymbolModule",[ne.Property]:"CocSymbolProperty",[ne.Unit]:"CocSymbolUnit",[ne.Value]:"CocSymbolValue",[ne.Enum]:"CocSymbolEnum",[ne.Keyword]:"CocSymbolKeyword",[ne.Snippet]:"CocSymbolSnippet",[ne.Color]:"CocSymbolColor",[ne.File]:"CocSymbolFile",[ne.Reference]:"CocSymbolReference",[ne.Folder]:"CocSymbolFolder",[ne.EnumMember]:"CocSymbolEnumMember",[ne.Constant]:"CocSymbolConstant",[ne.Struct]:"CocSymbolStruct",[ne.Event]:"CocSymbolEvent",[ne.Operator]:"CocSymbolOperator",[ne.TypeParameter]:"CocSymbolTypeParameter"};Mw=class{constructor(e,t,i){this.inputStart=e;this.option=t;this.opt=i;this.previousCache=new Map;this.postCache=new Map;this.minCharacter=Number.MAX_SAFE_INTEGER;this.character=i.position.character,this.inputLen=i.position.character-e}getPrevious(e){if(this.previousCache.has(e))return this.previousCache.get(e);let t=this.opt.line.slice(e,this.inputStart);return this.previousCache.set(e,t),t}getAfter(e){if(this.postCache.has(e))return this.postCache.get(e);let t=this.opt.line.slice(this.character,e);return this.postCache.set(e,t),t}fixFollow(e,t,i){if(t||i<=this.character)return e;let r=this.getAfter(i);return e.length-this.inputLen>r.length&&e.endsWith(r)?e.slice(0,-r.length):e}getDelta(e,t){if(te.source?1:-1}function P3(n){let e=n.tags||[];if(e.includes(Ji.Deprecated))return"CocDeprecatedHighlight";if(e.includes(Ji.Unnecessary))return"CocUnusedHighlight";switch(n.severity){case nt.Warning:return"CocWarningHighlight";case nt.Information:return"CocInfoHighlight";case nt.Hint:return"CocHintHighlight";default:return"CocErrorHighlight"}}function R3(n,e){let t=[],{range:i}=e;for(let r of n){let o=r.range;if(!Wc(i,o)){if(ze(o.start,i.end)>0){let s=bw(o.start,e),a=bw(o.end,e);s.line>=0&&s.character>=0&&a.line>=0&&a.character>=0&&(r.range=M.create(s,a))}t.push(r)}}return t}var FR=D(()=>{"use strict";ae();Pt();pe();Pr()});var _3,E3,I3,Wde,L3,Up,ed,Hw,F3=D(()=>{"use strict";ae();Re();ee();Se();Pt();$();We();he();FR();_3="CocDiagnostic",E3="diagnostic",I3=["CocErrorHighlight","CocWarningHighlight","CocInfoHighlight","CocHintHighlight","CocDeprecatedHighlight","CocUnusedHighlight"],Wde=ge(50,10),L3=ge("ale#other_source#ShowResults","MockAleResults"),Hw=class{constructor(e,t){this.nvim=e;this.doc=t;this.diagnosticsMap=new Map;this._disposed=!1;this._dirties=new Set;this._refreshing=!1;this._onDidRefresh=new p.Emitter;this.onDidRefresh=this._onDidRefresh.event;this.loadConfiguration();let i,r=()=>{clearTimeout(i),this._refreshing=!0,i=setTimeout(()=>{this._refreshing=!1,this._autoRefresh&&this._refresh(!0)},Wde)};r.clear=()=>{this._refreshing=!1,clearTimeout(i)},this.refreshHighlights=r}get _autoRefresh(){return this.config.enable&&this.config.autoRefresh&&this.dirty&&!this.doc.hasChanged}get config(){return this._config}loadConfiguration(){let e=b.getConfiguration("diagnostic",this.doc),t=this._config&&e.enable!=this._config.enable;this._config={enable:e.get("enable",!0),floatConfig:e.get("floatConfig",{}),messageTarget:e.get("messageTarget","float"),enableHighlightLineNumber:e.get("enableHighlightLineNumber",!0),highlightLimit:e.get("highlightLimit",1e3),highlightPriority:e.get("highlightPriority"),autoRefresh:e.get("autoRefresh",!0),checkCurrentLine:e.get("checkCurrentLine",!1),enableSign:b.env.sign&&e.get("enableSign",!0),locationlistUpdate:e.get("locationlistUpdate",!0),enableMessage:e.get("enableMessage","always"),virtualText:e.get("virtualText",!1),virtualTextAlign:e.get("virtualTextAlign","after"),virtualTextWinCol:e.get("virtualTextWinCol",null),virtualTextCurrentLineOnly:e.get("virtualTextCurrentLineOnly"),virtualTextPrefix:e.get("virtualTextPrefix"," "),virtualTextFormat:e.get("virtualTextFormat","%message"),virtualTextLimitInOneLine:e.get("virtualTextLimitInOneLine",999),virtualTextLineSeparator:e.get("virtualTextLineSeparator"," \\ "),virtualTextLines:e.get("virtualTextLines",3),displayByAle:e.get("displayByAle",!1),level:xs(e.get("level","hint")),locationlistLevel:xs(e.get("locationlistLevel")),signLevel:xs(e.get("signLevel")),virtualTextLevel:xs(e.get("virtualTextLevel")),messageLevel:xs(e.get("messageLevel")),signPriority:e.get("signPriority",10),refreshOnInsertMode:e.get("refreshOnInsertMode",!1),filetypeMap:e.get("filetypeMap",{}),showUnused:e.get("showUnused",!0),showDeprecated:e.get("showDeprecated",!0),format:e.get("format","[%source%code] [%severity] %message")},this._config.virtualText&&!Up&&this.nvim.createNamespace("coc-diagnostic-virtualText").then(i=>{Up=i}),t&&(this.config.enable?this._refresh(!1):this.clear())}async setState(e){this._config.enable!=e&&(this._config.enable=e,e?await this._refresh(!1):this.clear())}get dirty(){return this._dirties.size>0}get bufnr(){return this.doc.bufnr}get uri(){return this.doc.uri}onChange(e){let t=e.contentChanges;if(t.length>0){let i=Ye.replace(t[0].range,t[0].text);for(let[r,o]of this.diagnosticsMap.entries()){let s=R3(o,i);this.diagnosticsMap.set(r,s)}this._dirties=new Set(this.diagnosticsMap.keys())}!this.config.autoRefresh||this.refreshHighlights()}onTextChange(){this._dirties=new Set(this.diagnosticsMap.keys()),this.refreshHighlights.clear()}get displayByAle(){return this._config.displayByAle}clearHighlight(e){this.buffer.clearNamespace(E3+e)}clearSigns(e){this.buffer.unplaceSign({group:_3+e})}get diagnostics(){let e=[];for(let t of this.diagnosticsMap.values())e.push(...t);return e}get buffer(){return this.nvim.createBuffer(this.bufnr)}refreshAle(e,t){let i=t.map(r=>{let o=r.range;return{text:r.message,code:r.code,lnum:o.start.line+1,col:o.start.character+1,end_lnum:o.end.line+1,end_col:o.end.character,type:T3(r.severity)}});this.nvim.call(L3,[this.bufnr,"coc"+e,i],!0)}async update(e,t){let{diagnosticsMap:i}=this,r=i.get(e);if(!this._dirties.has(e)&&te(t)&&te(r))return;if(i.set(e,t),this.checkFloat(),!this.config.enable||t.length>0&&this._refreshing){this._dirties.add(e);return}let o=await this.getDiagnosticInfo(t.length===0);if(!o||o.winid==-1){this._dirties.add(e);return}let s=new Map;s.set(e,t),this.refresh(s,o)}async checkFloat(){if(b.bufnr!=this.bufnr||!ed)return;let e=await k.getCursorPosition();this.getDiagnosticsAtPosition(e).length==0&&ed.close()}async reset(e){this.refreshHighlights.clear();let{diagnosticsMap:t}=this;for(let i of t.keys())te(e[i])&&(e[i]=[]);for(let[i,r]of Object.entries(e))t.set(i,r);this._dirties=new Set(t.keys()),await this._refresh(!1)}async onCursorHold(e,t){if(this.config.enableMessage!=="always")return;let i=this.doc.getPosition(e,t);await this.echoMessage(!0,i)}async echoMessage(e=!1,t){let i=this.config;if(!i.enable||i.enableMessage==="never"||i.displayByAle)return!1;let r=i.messageTarget=="float",o=this.getDiagnosticsAtPosition(t);if(i.messageLevel&&(o=o.filter(s=>s.severity&&s.severity<=i.messageLevel)),r)await this.showFloat(o);else{let s=[];o.forEach(a=>{s.push(Aw(i.format,a))}),s.length&&(await this.nvim.command('echo ""'),await k.echoLines(s,e))}return!0}async showVirtualTextCurrentLine(e){let{config:t}=this;return!t.virtualTextCurrentLineOnly||_.insertMode&&!t.refreshOnInsertMode||!await this.isEnabled()?!1:(this.showVirtualText(e),!0)}async showFloat(e){if(this.config.messageTarget!=="float")return!1;if(ed||(ed=k.createFloatFactory({modes:["n"],autoHide:!0})),e.length==0)return ed.close(),!1;if(_.insertMode)return!1;let t=this.config,i="",r=[];if(Object.keys(t.filetypeMap).length>0){let o=this.doc.filetype,s=t.filetypeMap.default||"";i=t.filetypeMap[o]||(s=="bufferType"?o:s)}return e.forEach(o=>{var a;let s="Error";if(i==="")switch(o.severity){case nt.Hint:s="Hint";break;case nt.Warning:s="Warning";break;case nt.Information:s="Info";break}else s=i;r.push({filetype:s,content:Aw(t.format,o)}),(a=o.codeDescription)!=null&&a.href&&r.push({filetype:"txt",content:o.codeDescription.href})}),await ed.show(r,this.config.floatConfig),!0}async getDiagnosticInfo(e){let{refreshOnInsertMode:t}=this._config,{nvim:i,bufnr:r}=this,o=!t;if(e)o=!1;else if(_.insertMode&&!t)return;return await i.call("coc#util#diagnostic_info",[r,o])}refresh(e,t){let{nvim:i,displayByAle:r}=this;for(let o of e.keys())this._dirties.delete(o);if(r){i.pauseNotification();for(let[o,s]of e.entries())this.refreshAle(o,s);i.resumeNotification(!0,!0)}else{let o=[];i.pauseNotification();for(let[s,a]of e.entries())a.length==0&&o.push(s),this.addSigns(s,a),this.updateHighlights(s,a);this.showVirtualText(t.lnum),this.updateLocationList(t.winid,t.locationlist),this.setDiagnosticInfo(),i.resumeNotification(!0,!0),o.forEach(s=>{this.diagnosticsMap.delete(s)})}this._onDidRefresh.fire(this.diagnostics)}updateLocationList(e,t){if(!this._config.locationlistUpdate||e==-1||t!=="Diagnostics of coc")return;let i=this.toLocationListItems(this.diagnostics);this.nvim.call("coc#ui#setloclist",[e,i,"r","Diagnostics of coc"],!0)}toLocationListItems(e){let{locationlistLevel:t}=this._config,i=[],r=this.doc.textDocument.lines;e.sort(Nw);for(let o of e)t&&o.severity&&o.severity>t||i.push(k3(this.bufnr,o,r));return i}addSigns(e,t){let{enableSign:i,signLevel:r}=this._config;if(!i)return;let o=_3+e,s=[],a=new Map;for(let l of t){let{range:u,severity:c}=l;if(!c||r&&c>r)continue;let d=u.start.line,h=a.get(d)||[];if(h.includes(c))continue;h.push(c),a.set(d,h);let g=this._config.signPriority+4-c;s.push({name:LR(c),lnum:d+1,priority:g})}this.nvim.call("coc#ui#update_signs",[this.bufnr,o,s],!0)}setDiagnosticInfo(){let e=[0,0,0,0],t={error:0,warning:0,information:0,hint:0,lnums:e};for(let r of this.diagnosticsMap.values())for(let o of r){let s=o.range.start.line+1;switch(o.severity){case nt.Warning:t.warning=t.warning+1,e[1]=e[1]?Math.min(e[1],s):s;break;case nt.Information:t.information=t.information+1,e[2]=e[2]?Math.min(e[2],s):s;break;case nt.Hint:t.hint=t.hint+1,e[3]=e[3]?Math.min(e[3],s):s;break;default:e[0]=e[0]?Math.min(e[0],s):s,t.error=t.error+1}}this.nvim.createBuffer(this.bufnr).setVar("coc_diagnostic_info",t,!0),this.nvim.call("coc#util#do_autocmd",["CocDiagnosticChange"],!0)}showVirtualText(e){let{_config:t}=this,{virtualText:i,virtualTextLevel:r}=t;if(!i||e<0)return;let{virtualTextPrefix:o,virtualTextLimitInOneLine:s,virtualTextCurrentLineOnly:a}=this._config,{diagnostics:l,buffer:u}=this;a&&(l=l.filter(h=>{let{start:g,end:f}=h.range;return g.line<=e-1&&f.line>=e-1})),l.sort(Nw),u.clearNamespace(Up);let c=new Map,d={text_align:t.virtualTextAlign,virt_text_win_col:t.virtualTextWinCol};for(let h=l.length-1;h>=0;h--){let g=l[h];if(r&&g.severity&&g.severity>r)continue;let{line:f}=g.range.start,m=LR(g.severity)+"VirtualText",y=g.message.split(/\n/).map(x=>x.trim()).filter(x=>x.length>0).slice(0,this._config.virtualTextLines).join(this._config.virtualTextLineSeparator),w=c.get(f)??[];w.unshift([o+Aw(this._config.virtualTextFormat,{...g,message:y}),m]),c.set(f,w)}for(let[h,g]of c.entries())u.setVirtualText(Up,h,g.slice(0,s),d)}updateHighlights(e,t){if(!t.length)this.clearHighlight(e);else{let i=this.getHighlightItems(t),r=this._config.highlightPriority;this.buffer.updateHighlights(E3+e,i,{priority:r})}}async _refresh(e){let t=await this.getDiagnosticInfo(!e);if(!t||t.winid==-1||!this.config.enable)return;let{_dirties:i}=this;if(e){let r=new Map;for(let[o,s]of this.diagnosticsMap.entries())!i.has(o)||r.set(o,s);this.refresh(r,t)}else this.refresh(this.diagnosticsMap,t)}getHighlightItems(e){let t=[];for(let i=0;ii.lnum!=r.lnum?i.lnum-r.lnum:i.colStart!=r.colStart?i.colStart-r.colStart:I3.indexOf(r.hlGroup)-I3.indexOf(i.hlGroup)),t}clear(){let{nvim:e}=this,t=Array.from(this.diagnosticsMap.keys());if(this.refreshHighlights.clear(),this._dirties.clear(),this.displayByAle)for(let i of t)this.nvim.call(L3,[this.bufnr,i,[]],!0);else{e.pauseNotification(),this.buffer.deleteVar("coc_diagnostic_info");for(let i of t)this.clearHighlight(i),this.clearSigns(i);this._config.virtualText&&this.buffer.clearNamespace(Up),e.resumeNotification(!0,!0)}}getDiagnosticsAt(e,t){let i=[];for(let r of this.diagnosticsMap.values())t?i.push(...r.filter(o=>zZ(e.line,o.range))):i.push(...r.filter(o=>Ot(e,o.range)==0));return i.sort(Nw),i}getDiagnosticsAtPosition(e){let{config:t,doc:i}=this,r=this.getDiagnosticsAt(e,t.checkCurrentLine);if(t.checkCurrentLine||r.length)return r;let o=i.getline(e.line).length;return e.character+1==o&&(r=this.getDiagnosticsAt(V.create(e.line,e.character+1),!1),r.length)||e.line===i.lineCount-1&&e.character==0&&(e=V.create(e.line+1,0),r=this.getDiagnosticsAt(e,!0)),r}async isEnabled(){return this._disposed||!this.config.enable?!1:await this.nvim.createBuffer(this.bufnr).getVar("coc_diagnostic_disable")!=1}dispose(){this.clear(),this.diagnosticsMap.clear(),this._onDidRefresh.dispose(),this._disposed=!0}}});var Yde,$p,M3=D(()=>{"use strict";ae();Je();Se();$();he();Yde=[Ji.Deprecated,Ji.Unnecessary],$p=class{constructor(e,t){this.name=e;this.onDispose=t;this.diagnosticsMap=new Map;this._onDidDiagnosticsChange=new p.Emitter;this.onDidDiagnosticsChange=this._onDidDiagnosticsChange.event}set(e,t){let i=new Map;if(Array.isArray(e))for(let r of e){let[o,s]=r,a=b.getDocument(o);o=a?a.uri:o,s==null?s=[]:s=(i.get(o)||[]).concat(s),i.set(o,s)}else{let r=b.getDocument(e),o=r?r.uri:e;i.set(o,t||[])}for(let r of i){let[o,s]=r;o=A.parse(o).toString(),s.forEach(a=>{a.range=a.range??M.create(0,0,0,0),a.message=a.message??"",a.source=a.source||this.name,!a.severity&&Array.isArray(a.tags)&&Pg(a.tags,Yde)&&(a.severity=nt.Hint)}),this.diagnosticsMap.set(o,s),this._onDidDiagnosticsChange.fire(o)}}delete(e){this.diagnosticsMap.delete(e),this._onDidDiagnosticsChange.fire(e)}clear(){let e=Array.from(this.diagnosticsMap.keys());e=e.filter(t=>this.diagnosticsMap.get(t).length>0),this.diagnosticsMap.clear();for(let t of e)this._onDidDiagnosticsChange.fire(t)}forEach(e,t){for(let i of this.diagnosticsMap.keys()){let r=this.diagnosticsMap.get(i);e.call(t,i,r,this)}}entries(){return this.diagnosticsMap.entries()}get(e){let t=this.diagnosticsMap.get(e);return t==null?[]:t.slice()}has(e){return this.diagnosticsMap.has(e)}dispose(){this.clear(),this.onDispose&&this.onDispose(),this._onDidDiagnosticsChange.dispose()}}});var MR,hi,td=D(()=>{"use strict";ae();Je();kt();Re();ee();Se();Jt();at();Pt();$();pe();We();he();F3();M3();FR();MR=class{constructor(){this._onDidRefresh=new p.Emitter;this.onDidRefresh=this._onDidRefresh.event;this.enabled=!0;this.collections=[];this.disposables=[]}init(){ie.register({id:"workspace.diagnosticRelated",execute:()=>this.jumpRelated()},!1,"jump to related locations of current diagnostic."),this.defineSigns(b.initialConfiguration.get("diagnostic")),this.buffers=b.registerBufferSync(t=>{let i=new Hw(this.nvim,t);i.onDidRefresh(o=>{this._onDidRefresh.fire({diagnostics:o,uri:i.uri,bufnr:i.bufnr})});let r=this.getDiagnostics(i);return Object.keys(r).length>0&&i.config.autoRefresh&&i.reset(r),i}),b.onDidChangeConfiguration(t=>{if(this.buffers&&t.affectsConfiguration("diagnostic"))for(let i of this.buffers.items)i.loadConfiguration()},null,this.disposables);let e=b.initialConfiguration.get("diagnostic");_.on("CursorMoved",(t,i)=>{this.messageTimer&&clearTimeout(this.messageTimer),this.messageTimer=setTimeout(()=>{let r=this.buffers.getItem(t);r==null||r.dirty||Promise.allSettled([r.onCursorHold(i[0],i[1]),r.showVirtualTextCurrentLine(i[0])])},e.messageDelay)},null,this.disposables),_.on(["InsertEnter","BufEnter"],()=>{clearTimeout(this.messageTimer)},null,this.disposables),_.on("InsertLeave",t=>{let i=this.buffers.getItem(t);if(!(!i||i.config.refreshOnInsertMode))for(let r of this.buffers.items)r.refreshHighlights()},null,this.disposables),_.on("BufWinEnter",t=>{let i=this.buffers.getItem(t);i&&i.refreshHighlights()},null,this.disposables),this.checkConfigurationErrors(),b.configurations.onError(t=>{this.create("config").set(t.uri,t.diagnostics)},null,this.disposables)}checkConfigurationErrors(){let e=b.configurations.errors;if(!te(e)){let t=this.create("config");for(let[i,r]of e.entries()){let o=A.parse(i).fsPath;k.showErrorMessage(`Error detected for config file ${o}, please check diagnostics list.`),t.set(i,r)}}}defineSigns(e){let{nvim:t}=this;t.pauseNotification();for(let i of["Error","Warning","Info","Hint"]){let r=`sign define Coc${i} linehl=Coc${i}Line`,o=e[i.toLowerCase()+"Sign"];o&&(r+=` texthl=Coc${i}Sign text=${o}`),!ai&&e.enableHighlightLineNumber&&(r+=` numhl=Coc${i}Sign`),t.command(r,!0)}t.resumeNotification(!1,!0)}getItem(e){return this.buffers.getItem(e)}async setLocationlist(e){let t=b.getAttachedDocument(e),i=this.buffers.getItem(t.bufnr),r=[];for(let s of Object.values(this.getDiagnostics(i)))r.push(...s);let o=i.toLocationListItems(r);await this.nvim.call("coc#ui#setloclist",[0,o," ","Diagnostics of coc"])}create(e){let t=this.getCollectionByName(e);return t||(t=new $p(e,()=>{let i=this.collections.findIndex(r=>r==t);i!==-1&&this.collections.splice(i,1)}),this.collections.push(t),t.onDidDiagnosticsChange(i=>{var o;let r=(o=this.buffers)==null?void 0:o.getItem(i);r&&r.config.autoRefresh&&r.update(e,this.getDiagnosticsByCollection(r,t))}),t)}getSortedRanges(e,t,i){let r=this.getCollections(e),o=[],s=i?xs(i):0;for(let a of r){let l=a.get(e);s?l=l.filter(c=>c.severity==s):t&&t!(c.severity&&c.severity>t)));let u=l.map(c=>c.range);o.push(...u)}return o.sort((a,l)=>a.start.line!=l.start.line?a.start.line-l.start.line:a.start.character-l.start.character),o}getDiagnostics(e){let t={};for(let i of this.collections)!i.has(e.uri)||(t[i.name]=this.getDiagnosticsByCollection(e,i));return t}getDiagnosticsByCollection(e,t){let{level:i,showUnused:r,showDeprecated:o}=e.config,s=t.get(e.uri)??[];return s.length&&(s=s.filter(a=>{var l,u;return!(i&&a.severity&&a.severity>i||!r&&((l=a.tags)==null?void 0:l.includes(Ji.Unnecessary))||!o&&((u=a.tags)==null?void 0:u.includes(Ji.Deprecated)))}),s.sort((a,l)=>ze(a.range.start,l.range.start))),s}getDiagnosticsInRange(e,t){let i=[];for(let r of this.collections)for(let o of r.get(e.uri)??[])Jl(o.range,t)&&i.push(o);return i}async preview(){let e=await this.getCurrentDiagnostics();if(e.length==0){this.nvim.command("pclose",!0);return}let t=[];for(let i of e){let{source:r,code:o,severity:s,message:a}=i,l=Jp(s)[0];t.push(`[${r}${o?" "+o:""}] [${l}]`),t.push(...a.split(/\r?\n/)),t.push("")}this.nvim.call("coc#ui#preview_info",[t,"txt"],!0)}async prepareJump(e){let t=await this.nvim.call("bufnr",["%"]),i=this.buffers.getItem(t);if(!i)return;let r=this.getSortedRanges(i.uri,i.config.level,e);if(te(r))return;let o=await k.getCursorPosition(),s=await this.nvim.getOption("wrapscan");return{item:i,curpos:o,wrapscan:s!=0,ranges:r}}async jumpPrevious(e){let t=await this.prepareJump(e);if(!t)return;let{curpos:i,item:r,wrapscan:o,ranges:s}=t,a;for(let l=s.length-1;l>=0;l--){let u=s[l].end;if(ze(u,i)<0){a=s[l].start;break}}!a&&o&&(a=s[s.length-1].start),a?(await k.moveTo(a),await r.echoMessage(!1,a)):k.showWarningMessage("No more diagnostic before cursor position")}async jumpNext(e){let t=await this.prepareJump(e);if(!t)return;let{curpos:i,item:r,wrapscan:o,ranges:s}=t,a;for(let l=0;l<=s.length-1;l++){let u=s[l].start;if(ze(u,i)>0){let c=await this.nvim.call("coc#util#valid_position",[u.line,u.character]);if((c[0]!=u.line||c[1]!=u.character)&&ze(V.create(c[0],c[1]),i)<=0)continue;a=V.create(c[0],c[1]);break}}!a&&o&&(a=s[0].start),a?(await k.moveTo(a),await r.echoMessage(!1,a)):k.showWarningMessage("No more diagnostic after cursor position")}async getDiagnosticList(){let e=[],t=b.getConfiguration("diagnostic"),i=xs(t.get("level","hint"));for(let r of this.collections)for(let[o,s]of r.entries()){if(s.length==0)continue;let a=A.parse(o),l=b.getDocument(o),u=l&&l.attached?l.textDocument.lines:void 0;if(!u&&a.scheme==="file")try{let c=s.reduce((d,h)=>Math.max(h.range.end.line,d),0);u=await sa(a.fsPath,0,c)}catch{}for(let c of s){if(c.severity&&c.severity>i)continue;let{start:d,end:h}=c.range,g={file:a.fsPath,lnum:d.line+1,end_lnum:h.line+1,col:Array.isArray(u)?rt(u[d.line]??"",d.character)+1:d.character+1,end_col:Array.isArray(u)?rt(u[h.line]??"",h.character)+1:h.character+1,code:c.code,source:c.source??r.name,message:c.message,severity:Jp(c.severity),level:c.severity??0,location:Ze.create(o,c.range)};e.push(g)}}return e.sort((r,o)=>r.level!==o.level?r.level-o.level:r.file!==o.file?r.file>o.file?1:-1:r.lnum!=o.lnum?r.lnum-o.lnum:r.col-o.col),e}async getBufferAndPosition(){let[e,t,i]=await this.nvim.eval(`[bufnr("%"),line('.'),col('.')]`),r=this.buffers.getItem(e);if(!r)return;let o=r.doc.getPosition(t,i);return[r,o]}async getCurrentDiagnostics(){let e=await this.getBufferAndPosition();if(!!e)return e[0].getDiagnosticsAtPosition(e[1])}async echoCurrentMessage(){let e=await this.getBufferAndPosition();if(!e)return;let[t,i]=e;await t.echoMessage(!1,i)}async jumpRelated(){let t=(await this.getCurrentDiagnostics()).find(r=>r.relatedInformation!=null),i=t?t.relatedInformation.map(r=>r.location):[];i.length==1?await b.jumpTo(i[0].uri,i[0].range.start):i.length>1?await b.showLocations(i):k.showWarningMessage("No related information found.")}reset(){clearTimeout(this.messageTimer),this.buffers.reset();for(let e of this.collections)e.dispose();this.collections=[]}dispose(){clearTimeout(this.messageTimer),this.buffers.dispose();for(let e of this.collections)e.dispose();this.collections=[],Y(this.disposables)}get nvim(){return b.nvim}getCollectionByName(e){return this.collections.find(t=>t.name==e)}getCollections(e){return this.collections.filter(t=>t.has(e))}async toggleDiagnostic(e){this.enabled=e==null?!this.enabled:e!=0,await Promise.allSettled(this.buffers.items.map(t=>t.setState(this.enabled)))}async toggleDiagnosticBuffer(e,t){e=e??b.bufnr;let i=this.buffers.getItem(e);if(i){let r=t==null?await i.isEnabled():t==0;await this.nvim.call("setbufvar",[e,"coc_diagnostic_disable",r?1:0]),await i.setState(!r)}}async refreshBuffer(e){let t=this.buffers.getItem(e);return t?(await t.reset(this.getDiagnostics(t)),!0):!1}async refresh(e){let t;if(!e)t=this.buffers.items;else{let i=this.buffers.getItem(e);t=i?[i]:[]}for(let i of t)await this.refreshBuffer(i.uri)}},hi=new MR});function jR(n,e){if(Ze.is(e)){let{range:t,uri:i}=e;if(n.find(r=>r.uri==i&&Fe(r.range,t))!=null)return;n.push(e)}else if(e&&typeof e.targetUri=="string"){let{targetUri:t,targetSelectionRange:i,targetRange:r}=e;if(n.find(o=>o.uri==t&&Fe(o.range,i))!=null)return;n.push({uri:t,range:i,targetRange:r})}}var Zde,_e,Lt=D(()=>{"use strict";ae();Ce();Be();$();he();Zde=J("provider-manager"),_e=class{constructor(){this.providers=new Set}hasProvider(e){return this.getProvider(e)!=null}addProvider(e){return this.providers.add(e),p.Disposable.create(()=>{this.providers.delete(e)})}handleResults(e,t){e.forEach(i=>{i.status==="rejected"&&Zde.error(`Provider error on ${t}:`,i.reason)})}getProvider(e){let t=0,i;for(let r of this.providers){let{selector:o,priority:s}=r,a=b.match(o,e);a!=0&&(typeof s=="number"&&s>0&&(a=a+s),!(ai.id==e);return t?t.provider:null}getProviders(e){let t=Array.from(this.providers);return t=t.filter(i=>b.match(i.selector,e)>0),t.sort((i,r)=>b.match(r.selector,e)-b.match(i.selector,e))}addLocation(e,t){if(Array.isArray(t))for(let i of t)(Ze.is(i)||i&&typeof i.targetUri=="string")&&jR(e,i);else Ze.is(t)&&jR(e,t)}}});var Xp,j3=D(()=>{"use strict";ot();Lt();Xp=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async prepareCallHierarchy(e,t,i){let r=this.getProvider(e);if(!r)return null;let{provider:o}=r;return await Promise.resolve(o.prepareCallHierarchy(e,t,i))}async provideCallHierarchyOutgoingCalls(e,t,i){let r=this.getProvider(e);if(!r)return null;let{provider:o}=r;return await Promise.resolve(o.provideCallHierarchyOutgoingCalls(t,i))}async provideCallHierarchyIncomingCalls(e,t,i){let r=this.getProvider(e);if(!r)return null;let{provider:o}=r;return await Promise.resolve(o.provideCallHierarchyIncomingCalls(t,i))}}});function O3(n,e){return n.some(t=>e===t||e.startsWith(t+"."))}function Jde(n,e){return te(n)?!0:Ln.is(e)?!1:O3(n,e.kind)}var Gp,A3=D(()=>{"use strict";ot();ae();Se();Xe();Tr();Lt();Gp=class extends _e{register(e,t,i,r){return this.addProvider({id:me(),selector:e,provider:t,kinds:r,clientId:i})}async provideCodeActions(e,t,i,r){let o=this.getProviders(e),s=te(i.only)?void 0:i.only;s&&(o=o.filter(c=>!(Array.isArray(c.kinds)&&!c.kinds.some(d=>O3(s,d)))));let a=[],l=[],u=await Promise.allSettled(o.map(c=>{let{provider:d,id:h}=c;return(async()=>{let f=await Promise.resolve(d.provideCodeActions(e,t,i,r));if(!te(f)){for(let m of f)if(!(l.includes(m.title)||!Jde(s,m))){if(Ln.is(m)){let y={title:m.title,command:m,providerId:h};a.push(y)}else a.push(Object.assign({providerId:h},m));l.push(m.title)}}})()}));return this.handleResults(u,"provideCodeActions"),a}async resolveCodeAction(e,t){if(e.edit!=null||e.providerId==null)return e;let i=this.getProviderById(e.providerId);return!i||!it(i.resolveCodeAction)?e:await Promise.resolve(i.resolveCodeAction(ni(e,["providerId"]),t))??e}}});var zp,N3=D(()=>{"use strict";ot();Tr();Lt();Xe();zp=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideCodeLenses(e,t){let i=this.getProviders(e),r=[],o=await Promise.allSettled(i.map(s=>{let{provider:a,id:l}=s;return Promise.resolve(a.provideCodeLenses(e,t)).then(u=>{if(Array.isArray(u))for(let c of u)r.push(Object.assign({source:l},c))})}));return this.handleResults(o,"provideCodeLenses"),r}async resolveCodeLens(e,t){if(Lh(e.command))return e;let i=this.getProviderById(e.source);if(!i||typeof i.resolveCodeLens!="function")return e;let r=await Promise.resolve(i.resolveCodeLens(ni(e,["source"]),t));return Object.assign(e,r),e}}});var Kp,H3=D(()=>{"use strict";ot();Lt();Kp=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideDeclaration(e,t,i){let r=this.getProviders(e),o=[],s=await Promise.allSettled(r.map(a=>Promise.resolve(a.provider.provideDeclaration(e,t,i)).then(l=>{this.addLocation(o,l)})));return this.handleResults(s,"provideDeclaration"),o}}});var Qp,B3=D(()=>{"use strict";ot();ae();Lt();Qp=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideDefinition(e,t,i){let r=this.getProviders(e),o=[],s=await Promise.allSettled(r.map(a=>Promise.resolve(a.provider.provideDefinition(e,t,i)).then(l=>{this.addLocation(o,l)})));return this.handleResults(s,"provideDefinition"),o}async provideDefinitionLinks(e,t,i){let r=this.getProviders(e),o=[],s=await Promise.allSettled(r.map(a=>Promise.resolve(a.provider.provideDefinition(e,t,i)).then(l=>{Array.isArray(l)&&l.forEach(u=>{br.is(u)&&o.push(u)})})));return this.handleResults(s,"provideDefinition"),o}}});var Vp,q3=D(()=>{"use strict";ot();Be();Lt();Vp=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideDocumentColors(e,t){let i=this.getProviders(e),r=[],o=await Promise.allSettled(i.map(s=>{let{id:a}=s;return Promise.resolve(s.provider.provideDocumentColors(e,t)).then(l=>{let u=r.length==0;if(Array.isArray(l))for(let c of l)(u||!r.some(d=>Fe(d.range,c.range)))&&r.push(Object.assign({source:a},c))})}));return this.handleResults(o,"provideDocumentColors"),r}async provideColorPresentations(e,t,i){let r=this.getProviders(t),{range:o,color:s}=e;for(let a of r){let l=await Promise.resolve(a.provider.provideColorPresentations(s,{document:t,range:o},i));if(l)return l}return null}}});var ef,W3=D(()=>{"use strict";ot();Lt();ef=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideDocumentHighlights(e,t,i){let r=this.getProviders(e),o=null;for(let s of r)try{if(o=await Promise.resolve(s.provider.provideDocumentHighlights(e,t,i)),o!=null)break}catch(a){this.handleResults([{status:"rejected",reason:a}],"provideDocumentHighlights")}return o}}});function Y3(n){return`${n.start.line},${n.start.character},${n.end.line},${n.end.character}`}var tf,Z3=D(()=>{"use strict";ot();Tr();Lt();tf=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideDocumentLinks(e,t){let i=this.getProviders(e);if(i.length==0)return null;let r=[],o=new Set,s=await Promise.allSettled(i.map(async a=>{let{id:l,provider:u}=a,c=await u.provideDocumentLinks(e,t);if(Array.isArray(c)){let d=r.length>0;c.forEach(h=>{if(d){let g=Y3(h.range);o.has(g)||(o.add(g),r.push(Object.assign({source:l},h)))}else i.length>1&&o.add(Y3(h.range)),r.push(Object.assign({source:l},h))})}}));return this.handleResults(s,"provideDocumentLinks"),r}async resolveDocumentLink(e,t){let i=this.getProviderById(e.source);if(typeof i.resolveDocumentLink=="function"){let r=await Promise.resolve(i.resolveDocumentLink(ni(e,["source"]),t));r&&Object.assign(e,r)}return e}}});function Ude(n){n=n.slice().sort((i,r)=>wa(i.location.range,r.location.range));let e=[],t=[];for(let i of n){let r={name:se(i.name),kind:i.kind,tags:le(i.tags),detail:"",range:i.location.range,selectionRange:i.location.range};for(i.deprecated&&r.tags.push(Ui.Deprecated);;){if(t.length===0){t.push(r),e.push(r);break}let o=t[t.length-1];if(ri(r.range,o.range)&&!$Z(o.range,r.range)){o.children=le(o.children),o.children.push(r),t.push(r);break}t.pop()}}return e}var nf,J3=D(()=>{"use strict";ot();ae();Se();Pt();pe();Lt();nf=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}getMetaData(e){let t=this.getProvider(e);return t?t.provider.meta??{}:null}async provideDocumentSymbols(e,t){let i=this.getProvider(e);if(!i)return null;let r=[],o=await Promise.allSettled([i].map(s=>Promise.resolve(s.provider.provideDocumentSymbols(e,t)).then(a=>{!t.isCancellationRequested&&!te(a)&&(Dl.is(a[0])?r=a:r=Ude(a))})));return this.handleResults(o,"provideDocumentSymbols"),r}}});function U3(n,e){for(let t of e)if(n>=t.startLine){if(n<=t.endLine)return t;continue}else break}var rf,$3=D(()=>{"use strict";ot();Lt();rf=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideFoldingRanges(e,t,i){let r=this.getProviders(e),o=[],s=await Promise.allSettled(r.map(a=>Promise.resolve(a.provider.provideFoldingRanges(e,t,i)).then(l=>{if(Array.isArray(l)&&l.length>0){if(o.length==0)o.push(...l);else for(let u of l){let c=U3(u.startLine,o);if((c==null?void 0:c.startLine)===u.startLine)continue;let d=U3(u.endLine,o);c===d&&o.push(u)}o.sort((u,c)=>u.startLine-c.startLine)}})));return this.handleResults(s,"provideFoldingRanges"),o}}});var of,X3=D(()=>{"use strict";ot();Lt();of=class extends _e{register(e,t,i){return this.addProvider({id:me(),selector:e,priority:i,provider:t})}async provideDocumentFormattingEdits(e,t,i){let r=this.getProvider(e);if(!r)return null;let{provider:o}=r;return await Promise.resolve(o.provideDocumentFormattingEdits(e,t,i))}}});var sf,G3=D(()=>{"use strict";ot();Lt();sf=class extends _e{register(e,t,i){return this.addProvider({id:me(),selector:e,provider:t,priority:i})}async provideDocumentRangeFormattingEdits(e,t,i,r){let o=this.getProvider(e);if(!o)return null;let{provider:s}=o;return await Promise.resolve(s.provideDocumentRangeFormattingEdits(e,t,i,r))}}});var af,z3=D(()=>{"use strict";ot();ae();Be();Lt();af=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideHover(e,t,i){let r=this.getProviders(e),o=[],s=await Promise.allSettled(r.map(a=>Promise.resolve(a.provider.provideHover(e,t,i)).then(l=>{!as.is(l)||o.findIndex(u=>Fe(u.contents,l.contents))==-1&&o.push(l)})));return this.handleResults(s,"provideHover"),o}}});var lf,K3=D(()=>{"use strict";ot();Lt();lf=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideImplementations(e,t,i){let r=this.getProviders(e),o=[],s=await Promise.allSettled(r.map(a=>Promise.resolve(a.provider.provideImplementation(e,t,i)).then(l=>{this.addLocation(o,l)})));return this.handleResults(s,"provideImplementations"),o}}});function $de(n,e){return ze(n.position,e.position)!==0?!1:cf(n)===cf(e)}function Xde(n){return!n||!V.is(n.position)||n.label==null?!1:typeof n.label!="string"?Array.isArray(n.label)&&n.label.every(e=>typeof e.value=="string"):!0}function Gde(n,e){return n.label.length===0||Array.isArray(n.label)&&n.label.every(t=>t.value.length===0)?(Q3.warn("INVALID inlay hint, empty label",n),!1):Xde(n)?!(e&&Ot(n.position,e)!==0):(Q3.warn("INVALID inlay hint",n),!1)}function cf(n){return typeof n.label=="string"?n.label:n.label.map(e=>e.value).join("")}var Q3,uf,OR=D(()=>{"use strict";ot();ae();Ce();Pt();Lt();Q3=J("inlayHintManger"),uf=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideInlayHints(e,t,i){let r=this.getProviders(e),o=[];return await Promise.all(r.map(s=>{let{id:a,provider:l}=s;return Promise.resolve(l.provideInlayHints(e,t,i)).then(u=>{if(!Array.isArray(u)||i.isCancellationRequested)return;let c=o.length==0;for(let d of u)!Gde(d,t)||!c&&o.findIndex(h=>$de(h,d))!=-1||o.push({providerId:a,...d})})})),o}async resolveInlayHint(e,t){let i=this.getProviderById(e.providerId);if(!i||typeof i.resolveInlayHint!="function"||e.resolved===!0)return e;let r=await Promise.resolve(i.resolveInlayHint(e,t));return t.isCancellationRequested?e:Object.assign(e,r,{resolved:!0})}}});var df,V3=D(()=>{"use strict";ot();Be();Lt();df=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideInlineValues(e,t,i,r){let o=this.getProviders(e),s=[],a=await Promise.allSettled(o.map(l=>Promise.resolve(l.provider.provideInlineValues(e,t,i,r)).then(u=>{if(!Array.isArray(u))return;let c=s.length===0;for(let d of u)(c||s.every(h=>!Fe(h,d)))&&s.push(d)})));return this.handleResults(a,"provideInlineValues"),s}}});var WHe,hf,eU=D(()=>{"use strict";ot();Ce();Lt();WHe=J("linkedEditingManager"),hf=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideLinkedEditingRanges(e,t,i){let r=this.getProviders(e);for(let o of r){let s=await Promise.resolve(o.provider.provideLinkedEditingRanges(e,t,i));if(s!=null)return s}return null}}});var gf,tU=D(()=>{"use strict";ot();he();Lt();gf=class extends _e{register(e,t,i){return this.addProvider({id:me(),selector:e,provider:t,triggerCharacters:i??[]})}couldTrigger(e,t){for(let i of this.providers){let{triggerCharacters:r,selector:o}=i;if(b.match(o,e)>0&&r.includes(t))return i.provider}return null}async onCharacterType(e,t,i,r){let s=this.getProviders(t).find(l=>l.triggerCharacters.includes(e));if(!s)return null;let a=await b.getFormatOptions(t.uri);return await Promise.resolve(s.provider.provideOnTypeFormattingEdits(t,i,e,a,r))}}});var pf,iU=D(()=>{"use strict";ot();Lt();pf=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideReferences(e,t,i,r){let o=this.getProviders(e),s=[],a=await Promise.allSettled(o.map(l=>Promise.resolve(l.provider.provideReferences(e,t,i,r)).then(u=>{this.addLocation(s,u)})));return this.handleResults(a,"provideReferences"),s}}});var ff,nU=D(()=>{"use strict";ot();Lt();ff=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideRenameEdits(e,t,i,r){let o=this.getProviders(e),s=null;for(let a of o){try{s=await Promise.resolve(a.provider.provideRenameEdits(e,t,i,r))}catch(l){this.handleResults([{status:"rejected",reason:l}],"provideRenameEdits")}if(s!=null)break}return s}async prepareRename(e,t,i){let r=this.getProviders(e);if(r=r.filter(o=>typeof o.provider.prepareRename=="function"),r.length===0)return null;for(let o of r){let s=await Promise.resolve(o.provider.prepareRename(e,t,i));if(s!=null)return s}return!1}}});var mf,rU=D(()=>{"use strict";ot();Be();Pt();Lt();mf=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideSelectionRanges(e,t,i){let r=this.getProviders(e);if(r.length===0)return null;let o=[],s=await Promise.allSettled(r.map(l=>Promise.resolve(l.provider.provideSelectionRanges(e,t,i)).then(u=>{Array.isArray(u)&&u.length>0&&o.push(u)})));if(this.handleResults(s,"provideSelectionRanges"),o.length===0)return null;let a=o[0];if(o.length>1)for(let l=1;l<=o.length-1;l++){let u=a[0].range,c=a[a.length-1].range,d=o[l],h=d.length;ri(c,d[0].range)&&!Fe(c,d[0].range)?a.push(...d):ri(d[h-1].range,u)&&!Fe(d[h-1].range,u)&&a.unshift(...d)}for(let l=0;l{"use strict";ot();Lt();bf=class extends _e{register(e,t,i){return this.addProvider({id:me(),selector:e,provider:t,legend:i})}getLegend(e){let t=this.getProvider(e);if(!!t)return t.legend}hasSemanticTokensEdits(e){var i;let t=(i=this.getProvider(e))==null?void 0:i.provider;return t?typeof t.provideDocumentSemanticTokensEdits=="function":!1}async provideDocumentSemanticTokens(e,t){var r;let i=(r=this.getProvider(e))==null?void 0:r.provider;return!i||typeof i.provideDocumentSemanticTokens!="function"?null:await Promise.resolve(i.provideDocumentSemanticTokens(e,t))}async provideDocumentSemanticTokensEdits(e,t,i){let r=this.getProvider(e);return!r||typeof r.provider.provideDocumentSemanticTokensEdits!="function"?null:await Promise.resolve(r.provider.provideDocumentSemanticTokensEdits(e,t,i))}}});var yf,sU=D(()=>{"use strict";ot();Lt();yf=class extends _e{register(e,t,i){return this.addProvider({id:me(),selector:e,legend:i,provider:t})}getLegend(e){let t=this.getProvider(e);if(!!t)return t.legend}async provideDocumentRangeSemanticTokens(e,t,i){let r=this.getProvider(e);if(!r)return null;let{provider:o}=r;return await Promise.resolve(o.provideDocumentRangeSemanticTokens(e,t,i))}}});var vf,aU=D(()=>{"use strict";ot();Se();Lt();vf=class extends _e{register(e,t,i){i=te(i)?[]:i;let r=i.reduce((o,s)=>o.concat(s.length==1?[s]:s.split(/\s*/g)),[]);return this.addProvider({id:me(),selector:e,provider:t,triggerCharacters:r})}shouldTrigger(e,t){let i=this.getProviders(e);if(i.length===0)return!1;for(let r of i)if(r.triggerCharacters.includes(t))return!0;return!1}async provideSignatureHelp(e,t,i,r){let o=this.getProviders(e);for(let s of o){let a=await Promise.resolve(s.provider.provideSignatureHelp(e,t,i,r));if(a&&a.signatures&&a.signatures.length>0)return a}return null}}});var wf,lU=D(()=>{"use strict";ot();Lt();wf=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async provideTypeDefinition(e,t,i){let r=this.getProviders(e),o=[],s=await Promise.allSettled(r.map(a=>Promise.resolve(a.provider.provideTypeDefinition(e,t,i)).then(l=>{this.addLocation(o,l)})));return this.handleResults(s,"provideTypeDefinition"),o}}});var uU,xf,cU=D(()=>{"use strict";ot();Tr();Lt();uU=["source"],xf=class extends _e{register(e,t){return this.addProvider({id:me(),selector:e,provider:t})}async prepareTypeHierarchy(e,t,i){let r=this.getProviders(e),o=[],s=await Promise.allSettled(r.map(a=>{let{provider:l,id:u}=a;return(async()=>{let c=await Promise.resolve(l.prepareTypeHierarchy(e,t,i));if(Array.isArray(c)){let d=o.length===0;c.forEach(h=>{(d||o.every(g=>g.name!==h.name))&&o.push(Object.assign({source:u},h))})}})()}));return this.handleResults(s,"prepareTypeHierarchy"),o}async provideTypeHierarchySupertypes(e,t){let{source:i}=e,r=this.getProviderById(i);return r?await Promise.resolve(r.provideTypeHierarchySupertypes(ni(e,uU),t)).then(o=>Array.isArray(o)?o.map(s=>Object.assign({source:i},s)):[]):[]}async provideTypeHierarchySubtypes(e,t){let{source:i}=e,r=this.getProviderById(i);return r?await Promise.resolve(r.provideTypeHierarchySubtypes(ni(e,uU),t)).then(o=>Array.isArray(o)?o.map(s=>Object.assign({source:i},s)):[]):[]}}});var Cf,dU=D(()=>{"use strict";ot();Lt();Cf=class extends _e{register(e){return this.addProvider({id:me(),selector:[{language:"*"}],provider:e})}async provideWorkspaceSymbols(e,t){let i=Array.from(this.providers),r=[],o=await Promise.allSettled(i.map(s=>{let{id:a,provider:l}=s;return Promise.resolve(l.provideWorkspaceSymbols(e,t)).then(u=>{Array.isArray(u)&&r.push(...u.map(c=>Object.assign({source:a},c)))})}));return this.handleResults(o,"provideWorkspaceSymbols"),r}async resolveWorkspaceSymbol(e,t){let i=this.getProviderById(e.source);return!i||typeof i.resolveWorkspaceSymbol!="function"?e:i.resolveWorkspaceSymbol(e,t)}hasProvider(){return this.providers.size>0}}});var gU=v((TBe,hU)=>{"use strict";var zde=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];hU.exports=(n,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(n).concat(zde)),i={};for(let r of t)r in e||(i[r]={get(){let o=n[r];return typeof o=="function"?o.bind(n):o},set(o){n[r]=o},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),n.once("aborted",()=>{e.destroy(),e.emit("aborted")}),n.once("close",()=>{n.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var fU=v((kBe,pU)=>{"use strict";var{Transform:Kde,PassThrough:Qde}=require("stream"),AR=require("zlib"),Vde=gU();pU.exports=n=>{let e=(n.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return n;let t=e==="br";if(t&&typeof AR.createBrotliDecompress!="function")return n.destroy(new Error("Brotli is not supported on Node.js < 12")),n;let i=!0,r=new Kde({transform(a,l,u){i=!1,u(null,a)},flush(a){a()}}),o=new Qde({autoDestroy:!1,destroy(a,l){n.destroy(),l(a)}}),s=t?AR.createBrotliDecompress():AR.createUnzip();return s.once("error",a=>{if(i&&!n.readable){o.end();return}o.destroy(a)}),Vde(n,o),n.pipe(r).pipe(s).pipe(o),o}});var bU=v((PBe,mU)=>{var id=1e3,nd=id*60,rd=nd*60,zl=rd*24,ehe=zl*7,the=zl*365.25;mU.exports=function(n,e){e=e||{};var t=typeof n;if(t==="string"&&n.length>0)return ihe(n);if(t==="number"&&isFinite(n))return e.long?rhe(n):nhe(n);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(n))};function ihe(n){if(n=String(n),!(n.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(n);if(!!e){var t=parseFloat(e[1]),i=(e[2]||"ms").toLowerCase();switch(i){case"years":case"year":case"yrs":case"yr":case"y":return t*the;case"weeks":case"week":case"w":return t*ehe;case"days":case"day":case"d":return t*zl;case"hours":case"hour":case"hrs":case"hr":case"h":return t*rd;case"minutes":case"minute":case"mins":case"min":case"m":return t*nd;case"seconds":case"second":case"secs":case"sec":case"s":return t*id;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function nhe(n){var e=Math.abs(n);return e>=zl?Math.round(n/zl)+"d":e>=rd?Math.round(n/rd)+"h":e>=nd?Math.round(n/nd)+"m":e>=id?Math.round(n/id)+"s":n+"ms"}function rhe(n){var e=Math.abs(n);return e>=zl?Bw(n,e,zl,"day"):e>=rd?Bw(n,e,rd,"hour"):e>=nd?Bw(n,e,nd,"minute"):e>=id?Bw(n,e,id,"second"):n+" ms"}function Bw(n,e,t,i){var r=e>=t*1.5;return Math.round(n/t)+" "+i+(r?"s":"")}});var NR=v((RBe,yU)=>{function ohe(n){t.debug=t,t.default=t,t.coerce=l,t.disable=o,t.enable=r,t.enabled=s,t.humanize=bU(),t.destroy=u,Object.keys(n).forEach(c=>{t[c]=n[c]}),t.names=[],t.skips=[],t.formatters={};function e(c){let d=0;for(let h=0;h{if(O==="%%")return"%";P++;let q=t.formatters[j];if(typeof q=="function"){let K=y[P];O=q.call(w,K),y.splice(P,1),P--}return O}),t.formatArgs.call(w,y),(w.log||t.log).apply(w,y)}return m.namespace=c,m.useColors=t.useColors(),m.color=t.selectColor(c),m.extend=i,m.destroy=t.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(g!==t.namespaces&&(g=t.namespaces,f=t.enabled(c)),f),set:y=>{h=y}}),typeof t.init=="function"&&t.init(m),m}function i(c,d){let h=t(this.namespace+(typeof d>"u"?":":d)+c);return h.log=this.log,h}function r(c){t.save(c),t.namespaces=c,t.names=[],t.skips=[];let d,h=(typeof c=="string"?c:"").split(/[\s,]+/),g=h.length;for(d=0;d"-"+d)].join(",");return t.enable(""),c}function s(c){if(c[c.length-1]==="*")return!0;let d,h;for(d=0,h=t.skips.length;d{Vn.formatArgs=ahe;Vn.save=lhe;Vn.load=uhe;Vn.useColors=she;Vn.storage=che();Vn.destroy=(()=>{let n=!1;return()=>{n||(n=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Vn.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function she(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function ahe(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+qw.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;n.splice(1,0,e,"color: inherit");let t=0,i=0;n[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(t++,r==="%c"&&(i=t))}),n.splice(i,0,e)}Vn.log=console.debug||console.log||(()=>{});function lhe(n){try{n?Vn.storage.setItem("debug",n):Vn.storage.removeItem("debug")}catch{}}function uhe(){let n;try{n=Vn.storage.getItem("debug")}catch{}return!n&&typeof process<"u"&&"env"in process&&(n=process.env.DEBUG),n}function che(){try{return localStorage}catch{}}qw.exports=NR()(Vn);var{formatters:dhe}=qw.exports;dhe.j=function(n){try{return JSON.stringify(n)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var xU=v((_Be,wU)=>{"use strict";wU.exports=(n,e=process.argv)=>{let t=n.startsWith("-")?"":n.length===1?"-":"--",i=e.indexOf(t+n),r=e.indexOf("--");return i!==-1&&(r===-1||i{"use strict";var hhe=require("os"),CU=require("tty"),Rr=xU(),{env:Ni}=process,ka;Rr("no-color")||Rr("no-colors")||Rr("color=false")||Rr("color=never")?ka=0:(Rr("color")||Rr("colors")||Rr("color=true")||Rr("color=always"))&&(ka=1);"FORCE_COLOR"in Ni&&(Ni.FORCE_COLOR==="true"?ka=1:Ni.FORCE_COLOR==="false"?ka=0:ka=Ni.FORCE_COLOR.length===0?1:Math.min(parseInt(Ni.FORCE_COLOR,10),3));function HR(n){return n===0?!1:{level:n,hasBasic:!0,has256:n>=2,has16m:n>=3}}function BR(n,e){if(ka===0)return 0;if(Rr("color=16m")||Rr("color=full")||Rr("color=truecolor"))return 3;if(Rr("color=256"))return 2;if(n&&!e&&ka===void 0)return 0;let t=ka||0;if(Ni.TERM==="dumb")return t;if(process.platform==="win32"){let i=hhe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in Ni)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(i=>i in Ni)||Ni.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in Ni)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ni.TEAMCITY_VERSION)?1:0;if(Ni.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Ni){let i=parseInt((Ni.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ni.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ni.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ni.TERM)||"COLORTERM"in Ni?1:t}function ghe(n){let e=BR(n,n&&n.isTTY);return HR(e)}SU.exports={supportsColor:ghe,stdout:HR(BR(!0,CU.isatty(1))),stderr:HR(BR(!0,CU.isatty(2)))}});var kU=v((Qi,Yw)=>{var phe=require("tty"),Ww=require("util");Qi.init=xhe;Qi.log=yhe;Qi.formatArgs=mhe;Qi.save=vhe;Qi.load=whe;Qi.useColors=fhe;Qi.destroy=Ww.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Qi.colors=[6,2,3,4,5,1];try{let n=DU();n&&(n.stderr||n).level>=2&&(Qi.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Qi.inspectOpts=Object.keys(process.env).filter(n=>/^debug_/i.test(n)).reduce((n,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(r,o)=>o.toUpperCase()),i=process.env[e];return/^(yes|on|true|enabled)$/i.test(i)?i=!0:/^(no|off|false|disabled)$/i.test(i)?i=!1:i==="null"?i=null:i=Number(i),n[t]=i,n},{});function fhe(){return"colors"in Qi.inspectOpts?Boolean(Qi.inspectOpts.colors):phe.isatty(process.stderr.fd)}function mhe(n){let{namespace:e,useColors:t}=this;if(t){let i=this.color,r="\x1B[3"+(i<8?i:"8;5;"+i),o=` ${r};1m${e} \x1B[0m`;n[0]=o+n[0].split(` +`).join(` +`+o),n.push(r+"m+"+Yw.exports.humanize(this.diff)+"\x1B[0m")}else n[0]=bhe()+e+" "+n[0]}function bhe(){return Qi.inspectOpts.hideDate?"":new Date().toISOString()+" "}function yhe(...n){return process.stderr.write(Ww.format(...n)+` +`)}function vhe(n){n?process.env.DEBUG=n:delete process.env.DEBUG}function whe(){return process.env.DEBUG}function xhe(n){n.inspectOpts={};let e=Object.keys(Qi.inspectOpts);for(let t=0;te.trim()).join(" ")};TU.O=function(n){return this.inspectOpts.colors=this.useColors,Ww.inspect(n,this.inspectOpts)}});var od=v((IBe,qR)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?qR.exports=vU():qR.exports=kU()});var RU=v((LBe,PU)=>{var Sf;PU.exports=function(){if(!Sf){try{Sf=od()("follow-redirects")}catch{}typeof Sf!="function"&&(Sf=function(){})}Sf.apply(null,arguments)}});var OU=v((FBe,UR)=>{var Kl=require("url"),WR=Kl.URL,Che=require("http"),She=require("https"),IU=require("stream").Writable,LU=require("assert"),FU=RU(),ZR=["abort","aborted","connect","error","socket","timeout"],JR=Object.create(null);ZR.forEach(function(n){JR[n]=function(e,t,i){this._redirectable.emit(n,e,t,i)}});var Dhe=Tf("ERR_INVALID_URL","Invalid URL",TypeError),_U=Tf("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),The=Tf("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded"),khe=Tf("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),Phe=Tf("ERR_STREAM_WRITE_AFTER_END","write after end");function er(n,e){IU.call(this),this._sanitizeOptions(n),this._options=n,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],e&&this.on("response",e);var t=this;this._onNativeResponse=function(i){t._processResponse(i)},this._performRequest()}er.prototype=Object.create(IU.prototype);er.prototype.abort=function(){jU(this._currentRequest),this.emit("abort")};er.prototype.write=function(n,e,t){if(this._ending)throw new Phe;if(!Ql(n)&&!Ehe(n))throw new TypeError("data should be a string, Buffer or Uint8Array");if(Df(e)&&(t=e,e=null),n.length===0){t&&t();return}this._requestBodyLength+n.length<=this._options.maxBodyLength?(this._requestBodyLength+=n.length,this._requestBodyBuffers.push({data:n,encoding:e}),this._currentRequest.write(n,e,t)):(this.emit("error",new khe),this.abort())};er.prototype.end=function(n,e,t){if(Df(n)?(t=n,n=e=null):Df(e)&&(t=e,e=null),!n)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var i=this,r=this._currentRequest;this.write(n,e,function(){i._ended=!0,r.end(null,null,t)}),this._ending=!0}};er.prototype.setHeader=function(n,e){this._options.headers[n]=e,this._currentRequest.setHeader(n,e)};er.prototype.removeHeader=function(n){delete this._options.headers[n],this._currentRequest.removeHeader(n)};er.prototype.setTimeout=function(n,e){var t=this;function i(s){s.setTimeout(n),s.removeListener("timeout",s.destroy),s.addListener("timeout",s.destroy)}function r(s){t._timeout&&clearTimeout(t._timeout),t._timeout=setTimeout(function(){t.emit("timeout"),o()},n),i(s)}function o(){t._timeout&&(clearTimeout(t._timeout),t._timeout=null),t.removeListener("abort",o),t.removeListener("error",o),t.removeListener("response",o),e&&t.removeListener("timeout",e),t.socket||t._currentRequest.removeListener("socket",r)}return e&&this.on("timeout",e),this.socket?r(this.socket):this._currentRequest.once("socket",r),this.on("socket",i),this.on("abort",o),this.on("error",o),this.on("response",o),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(n){er.prototype[n]=function(e,t){return this._currentRequest[n](e,t)}});["aborted","connection","socket"].forEach(function(n){Object.defineProperty(er.prototype,n,{get:function(){return this._currentRequest[n]}})});er.prototype._sanitizeOptions=function(n){if(n.headers||(n.headers={}),n.host&&(n.hostname||(n.hostname=n.host),delete n.host),!n.pathname&&n.path){var e=n.path.indexOf("?");e<0?n.pathname=n.path:(n.pathname=n.path.substring(0,e),n.search=n.path.substring(e))}};er.prototype._performRequest=function(){var n=this._options.protocol,e=this._options.nativeProtocols[n];if(!e){this.emit("error",new TypeError("Unsupported protocol "+n));return}if(this._options.agents){var t=n.slice(0,-1);this._options.agent=this._options.agents[t]}var i=this._currentRequest=e.request(this._options,this._onNativeResponse);i._redirectable=this;for(var r of ZR)i.on(r,JR[r]);if(this._currentUrl=/^\//.test(this._options.path)?Kl.format(this._options):this._options.path,this._isRedirect){var o=0,s=this,a=this._requestBodyBuffers;(function l(u){if(i===s._currentRequest)if(u)s.emit("error",u);else if(o=400){n.responseUrl=this._currentUrl,n.redirects=this._redirects,this.emit("response",n),this._requestBodyBuffers=[];return}if(jU(this._currentRequest),n.destroy(),++this._redirectCount>this._options.maxRedirects){this.emit("error",new The);return}var i,r=this._options.beforeRedirect;r&&(i=Object.assign({Host:n.req.getHeader("host")},this._options.headers));var o=this._options.method;((e===301||e===302)&&this._options.method==="POST"||e===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],YR(/^content-/i,this._options.headers));var s=YR(/^host$/i,this._options.headers),a=Kl.parse(this._currentUrl),l=s||a.host,u=/^\w+:/.test(t)?this._currentUrl:Kl.format(Object.assign(a,{host:l})),c;try{c=Kl.resolve(u,t)}catch(f){this.emit("error",new _U({cause:f}));return}FU("redirecting to",c),this._isRedirect=!0;var d=Kl.parse(c);if(Object.assign(this._options,d),(d.protocol!==a.protocol&&d.protocol!=="https:"||d.host!==l&&!_he(d.host,l))&&YR(/^(?:authorization|cookie)$/i,this._options.headers),Df(r)){var h={headers:n.headers,statusCode:e},g={url:u,method:o,headers:i};try{r(this._options,h,g)}catch(f){this.emit("error",f);return}this._sanitizeOptions(this._options)}try{this._performRequest()}catch(f){this.emit("error",new _U({cause:f}))}};function MU(n){var e={maxRedirects:21,maxBodyLength:10485760},t={};return Object.keys(n).forEach(function(i){var r=i+":",o=t[r]=n[i],s=e[i]=Object.create(o);function a(u,c,d){if(Ql(u)){var h;try{h=EU(new WR(u))}catch{h=Kl.parse(u)}if(!Ql(h.protocol))throw new Dhe({input:u});u=h}else WR&&u instanceof WR?u=EU(u):(d=c,c=u,u={protocol:r});return Df(c)&&(d=c,c=null),c=Object.assign({maxRedirects:e.maxRedirects,maxBodyLength:e.maxBodyLength},u,c),c.nativeProtocols=t,!Ql(c.host)&&!Ql(c.hostname)&&(c.hostname="::1"),LU.equal(c.protocol,r,"protocol mismatch"),FU("options",c),new er(c,d)}function l(u,c,d){var h=s.request(u,c,d);return h.end(),h}Object.defineProperties(s,{request:{value:a,configurable:!0,enumerable:!0,writable:!0},get:{value:l,configurable:!0,enumerable:!0,writable:!0}})}),e}function Rhe(){}function EU(n){var e={protocol:n.protocol,hostname:n.hostname.startsWith("[")?n.hostname.slice(1,-1):n.hostname,hash:n.hash,search:n.search,pathname:n.pathname,path:n.pathname+n.search,href:n.href};return n.port!==""&&(e.port=Number(n.port)),e}function YR(n,e){var t;for(var i in e)n.test(i)&&(t=e[i],delete e[i]);return t===null||typeof t>"u"?void 0:String(t).trim()}function Tf(n,e,t){function i(r){Error.captureStackTrace(this,this.constructor),Object.assign(this,r||{}),this.code=n,this.message=this.cause?e+": "+this.cause.message:e}return i.prototype=new(t||Error),i.prototype.constructor=i,i.prototype.name="Error ["+n+"]",i}function jU(n){for(var e of ZR)n.removeListener(e,JR[e]);n.on("error",Rhe),n.abort()}function _he(n,e){LU(Ql(n)&&Ql(e));var t=n.length-e.length-1;return t>0&&n[t]==="."&&n.endsWith(e)}function Ql(n){return typeof n=="string"||n instanceof String}function Df(n){return typeof n=="function"}function Ehe(n){return typeof n=="object"&&"length"in n}UR.exports=MU({http:Che,https:She});UR.exports.wrap=MU});var AU=v($R=>{"use strict";Object.defineProperty($R,"__esModule",{value:!0});function Ihe(n,e,{signal:t}={}){return new Promise((i,r)=>{function o(){t==null||t.removeEventListener("abort",o),n.removeListener(e,s),n.removeListener("error",a)}function s(...l){o(),i(l)}function a(l){o(),r(l)}t==null||t.addEventListener("abort",o),n.on(e,s),n.on("error",a)})}$R.default=Ihe});var NU=v(XR=>{"use strict";Object.defineProperty(XR,"__esModule",{value:!0});function Lhe(n){return function(e,t){return new Promise((i,r)=>{n.call(this,e,t,(o,s)=>{o?r(o):i(s)})})}}XR.default=Lhe});var KR=v((zR,BU)=>{"use strict";var HU=zR&&zR.__importDefault||function(n){return n&&n.__esModule?n:{default:n}},Fhe=require("events"),Mhe=HU(od()),jhe=HU(NU()),kf=Mhe.default("agent-base");function Ohe(n){return Boolean(n)&&typeof n.addRequest=="function"}function GR(){let{stack:n}=new Error;return typeof n!="string"?!1:n.split(` +`).some(e=>e.indexOf("(https.js:")!==-1||e.indexOf("node:https:")!==-1)}function Zw(n,e){return new Zw.Agent(n,e)}(function(n){class e extends Fhe.EventEmitter{constructor(i,r){super();let o=r;typeof i=="function"?this.callback=i:i&&(o=i),this.timeout=null,o&&typeof o.timeout=="number"&&(this.timeout=o.timeout),this.maxFreeSockets=1,this.maxSockets=1,this.maxTotalSockets=1/0,this.sockets={},this.freeSockets={},this.requests={},this.options={}}get defaultPort(){return typeof this.explicitDefaultPort=="number"?this.explicitDefaultPort:GR()?443:80}set defaultPort(i){this.explicitDefaultPort=i}get protocol(){return typeof this.explicitProtocol=="string"?this.explicitProtocol:GR()?"https:":"http:"}set protocol(i){this.explicitProtocol=i}callback(i,r,o){throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`')}addRequest(i,r){let o=Object.assign({},r);typeof o.secureEndpoint!="boolean"&&(o.secureEndpoint=GR()),o.host==null&&(o.host="localhost"),o.port==null&&(o.port=o.secureEndpoint?443:80),o.protocol==null&&(o.protocol=o.secureEndpoint?"https:":"http:"),o.host&&o.path&&delete o.path,delete o.agent,delete o.hostname,delete o._defaultAgent,delete o.defaultPort,delete o.createConnection,i._last=!0,i.shouldKeepAlive=!1;let s=!1,a=null,l=o.timeout||this.timeout,u=g=>{i._hadError||(i.emit("error",g),i._hadError=!0)},c=()=>{a=null,s=!0;let g=new Error(`A "socket" was not created for HTTP request before ${l}ms`);g.code="ETIMEOUT",u(g)},d=g=>{s||(a!==null&&(clearTimeout(a),a=null),u(g))},h=g=>{if(s)return;if(a!=null&&(clearTimeout(a),a=null),Ohe(g)){kf("Callback returned another Agent instance %o",g.constructor.name),g.addRequest(i,o);return}if(g){g.once("free",()=>{this.freeSocket(g,o)}),i.onSocket(g);return}let f=new Error(`no Duplex stream was returned to agent-base for \`${i.method} ${i.path}\``);u(f)};if(typeof this.callback!="function"){u(new Error("`callback` is not defined"));return}this.promisifiedCallback||(this.callback.length>=3?(kf("Converting legacy callback function to promise"),this.promisifiedCallback=jhe.default(this.callback)):this.promisifiedCallback=this.callback),typeof l=="number"&&l>0&&(a=setTimeout(c,l)),"port"in o&&typeof o.port!="number"&&(o.port=Number(o.port));try{kf("Resolving socket for %o request: %o",o.protocol,`${i.method} ${i.path}`),Promise.resolve(this.promisifiedCallback(i,o)).then(h,d)}catch(g){Promise.reject(g).catch(d)}}freeSocket(i,r){kf("Freeing socket %o %o",i.constructor.name,r),i.destroy()}destroy(){kf("Destroying agent %o",this.constructor.name)}}n.Agent=e,n.prototype=n.Agent.prototype})(Zw||(Zw={}));BU.exports=Zw});var qU=v(Vl=>{"use strict";var Ahe=Vl&&Vl.__awaiter||function(n,e,t,i){function r(o){return o instanceof t?o:new t(function(s){s(o)})}return new(t||(t=Promise))(function(o,s){function a(c){try{u(i.next(c))}catch(d){s(d)}}function l(c){try{u(i.throw(c))}catch(d){s(d)}}function u(c){c.done?o(c.value):r(c.value).then(a,l)}u((i=i.apply(n,e||[])).next())})},Pf=Vl&&Vl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Vl,"__esModule",{value:!0});var Nhe=Pf(require("net")),Hhe=Pf(require("tls")),QR=Pf(require("url")),Bhe=Pf(od()),qhe=Pf(AU()),Whe=KR(),Pa=(0,Bhe.default)("http-proxy-agent");function Yhe(n){return typeof n=="string"?/^https:?$/i.test(n):!1}var VR=class extends Whe.Agent{constructor(e){let t;if(typeof e=="string"?t=QR.default.parse(e):t=e,!t)throw new Error("an HTTP(S) proxy server `host` and `port` must be specified!");Pa("Creating new HttpProxyAgent instance: %o",t),super(t);let i=Object.assign({},t);this.secureProxy=t.secureProxy||Yhe(i.protocol),i.host=i.hostname||i.host,typeof i.port=="string"&&(i.port=parseInt(i.port,10)),!i.port&&i.host&&(i.port=this.secureProxy?443:80),i.host&&i.path&&(delete i.path,delete i.pathname),this.proxy=i}callback(e,t){return Ahe(this,void 0,void 0,function*(){let{proxy:i,secureProxy:r}=this,o=QR.default.parse(e.path);o.protocol||(o.protocol="http:"),o.hostname||(o.hostname=t.hostname||t.host||null),o.port==null&&typeof t.port&&(o.port=String(t.port)),o.port==="80"&&(o.port=""),e.path=QR.default.format(o),i.auth&&e.setHeader("Proxy-Authorization",`Basic ${Buffer.from(i.auth).toString("base64")}`);let s;if(r?(Pa("Creating `tls.Socket`: %o",i),s=Hhe.default.connect(i)):(Pa("Creating `net.Socket`: %o",i),s=Nhe.default.connect(i)),e._header){let a,l;Pa("Regenerating stored HTTP header string for request"),e._header=null,e._implicitHeader(),e.output&&e.output.length>0?(Pa("Patching connection write() output buffer with updated header"),a=e.output[0],l=a.indexOf(`\r +\r +`)+4,e.output[0]=e._header+a.substring(l),Pa("Output buffer: %o",e.output)):e.outputData&&e.outputData.length>0&&(Pa("Patching connection write() output buffer with updated header"),a=e.outputData[0].data,l=a.indexOf(`\r +\r +`)+4,e.outputData[0].data=e._header+a.substring(l),Pa("Output buffer: %o",e.outputData[0].data))}return yield(0,qhe.default)(s,"connect"),s})}};Vl.default=VR});var YU=v((i_,WU)=>{"use strict";var Zhe=i_&&i_.__importDefault||function(n){return n&&n.__esModule?n:{default:n}},e_=Zhe(qU());function t_(n){return new e_.default(n)}(function(n){n.HttpProxyAgent=e_.default,n.prototype=e_.default.prototype})(t_||(t_={}));WU.exports=t_});var ZU=v(_f=>{"use strict";var Jhe=_f&&_f.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(_f,"__esModule",{value:!0});var Uhe=Jhe(od()),Rf=Uhe.default("https-proxy-agent:parse-proxy-response");function $he(n){return new Promise((e,t)=>{let i=0,r=[];function o(){let d=n.read();d?c(d):n.once("readable",o)}function s(){n.removeListener("end",l),n.removeListener("error",u),n.removeListener("close",a),n.removeListener("readable",o)}function a(d){Rf("onclose had error %o",d)}function l(){Rf("onend")}function u(d){s(),Rf("onerror %o",d),t(d)}function c(d){r.push(d),i+=d.length;let h=Buffer.concat(r,i);if(h.indexOf(`\r +\r +`)===-1){Rf("have not received end of HTTP headers yet..."),o();return}let f=h.toString("ascii",0,h.indexOf(`\r +`)),m=+f.split(" ")[1];Rf("got proxy server response: %o",f),e({statusCode:m,buffered:h})}n.on("error",u),n.on("close",a),n.on("end",l),o()})}_f.default=$he});var $U=v(eu=>{"use strict";var Xhe=eu&&eu.__awaiter||function(n,e,t,i){function r(o){return o instanceof t?o:new t(function(s){s(o)})}return new(t||(t=Promise))(function(o,s){function a(c){try{u(i.next(c))}catch(d){s(d)}}function l(c){try{u(i.throw(c))}catch(d){s(d)}}function u(c){c.done?o(c.value):r(c.value).then(a,l)}u((i=i.apply(n,e||[])).next())})},sd=eu&&eu.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(eu,"__esModule",{value:!0});var JU=sd(require("net")),UU=sd(require("tls")),Ghe=sd(require("url")),zhe=sd(require("assert")),Khe=sd(od()),Qhe=KR(),Vhe=sd(ZU()),Ef=Khe.default("https-proxy-agent:agent"),n_=class extends Qhe.Agent{constructor(e){let t;if(typeof e=="string"?t=Ghe.default.parse(e):t=e,!t)throw new Error("an HTTP(S) proxy server `host` and `port` must be specified!");Ef("creating new HttpsProxyAgent instance: %o",t),super(t);let i=Object.assign({},t);this.secureProxy=t.secureProxy||ige(i.protocol),i.host=i.hostname||i.host,typeof i.port=="string"&&(i.port=parseInt(i.port,10)),!i.port&&i.host&&(i.port=this.secureProxy?443:80),this.secureProxy&&!("ALPNProtocols"in i)&&(i.ALPNProtocols=["http 1.1"]),i.host&&i.path&&(delete i.path,delete i.pathname),this.proxy=i}callback(e,t){return Xhe(this,void 0,void 0,function*(){let{proxy:i,secureProxy:r}=this,o;r?(Ef("Creating `tls.Socket`: %o",i),o=UU.default.connect(i)):(Ef("Creating `net.Socket`: %o",i),o=JU.default.connect(i));let s=Object.assign({},i.headers),l=`CONNECT ${`${t.host}:${t.port}`} HTTP/1.1\r +`;i.auth&&(s["Proxy-Authorization"]=`Basic ${Buffer.from(i.auth).toString("base64")}`);let{host:u,port:c,secureEndpoint:d}=t;tge(c,d)||(u+=`:${c}`),s.Host=u,s.Connection="close";for(let y of Object.keys(s))l+=`${y}: ${s[y]}\r +`;let h=Vhe.default(o);o.write(`${l}\r +`);let{statusCode:g,buffered:f}=yield h;if(g===200){if(e.once("socket",ege),t.secureEndpoint){Ef("Upgrading socket connection to TLS");let y=t.servername||t.host;return UU.default.connect(Object.assign(Object.assign({},nge(t,"host","hostname","path","port")),{socket:o,servername:y}))}return o}o.destroy();let m=new JU.default.Socket({writable:!1});return m.readable=!0,e.once("socket",y=>{Ef("replaying proxy buffer for failed request"),zhe.default(y.listenerCount("data")>0),y.push(f),y.push(null)}),m})}};eu.default=n_;function ege(n){n.resume()}function tge(n,e){return Boolean(!e&&n===80||e&&n===443)}function ige(n){return typeof n=="string"?/^https:?$/i.test(n):!1}function nge(n,...e){let t={},i;for(i in n)e.includes(i)||(t[i]=n[i]);return t}});var GU=v((s_,XU)=>{"use strict";var rge=s_&&s_.__importDefault||function(n){return n&&n.__esModule?n:{default:n}},r_=rge($U());function o_(n){return new r_.default(n)}(function(n){n.HttpsProxyAgent=r_.default,n.prototype=r_.default.prototype})(o_||(o_={}));XU.exports=o_});function l_(n){return n.protocol==="https:"?Uw.https:Uw.http}function oge(n){return typeof n=="string"||Buffer.isBuffer(n)?n:JSON.stringify(n)}function u_(n){if(n instanceof Jw.URL)return n;let e=new Jw.URL(n);if(!["https:","http:"].includes(e.protocol))throw new Error(`Not valid protocol with ${n}, should be http: or https:`);return e}function c_(n,e){return n&&(n=typeof n=="number"?n:parseInt(n,10),!isNaN(n))?n:e.startsWith("https")?443:80}function sge(n){return n===null?"null":n===void 0?"undefined":typeof n=="string"?"string":Buffer.isBuffer(n)?"buffer":Array.isArray(n)||St(n)?"object":"unknown"}function age(n,e=process.env){let t=e.NO_PROXY??e.no_proxy;if(t==="*")return null;if(t){let r=n.hostname.replace(/^\.*/,".").toLowerCase(),o=c_(n.port,n.protocol).toString(),s=t.split(",");for(let a=0,l=s.length;a{if(i){let u=i.onCancellationRequested(()=>{u.dispose(),l.destroy(new Ct)})}let a,l=r.request(t,u=>{let c=u;if(u.statusCode>=200&&u.statusCode<300||u.statusCode===1223){let d=u.headers,h=[],g=se(d["content-type"]);c=(0,zU.default)(u),c.on("data",f=>{h.push(f)}),c.on("end",()=>{clearTimeout(a);let f=Buffer.concat(h);if(!t.buffer&&(g.startsWith("application/json")||g.startsWith("text/"))){let m=g.match(/charset=(\S+)/),y=m?m[1]:"utf8",w=f.toString(y);if(!g.includes("application/json"))o(w);else try{let x=JSON.parse(w);o(x)}catch(x){s(new Error(`Parse response error: ${x}`))}}else o(f)}),c.on("error",f=>{s(new Error(`Connection error to ${n}: ${f.message}`))})}else s(new Error(`Bad response from ${n}: ${u.statusCode}`))});l.on("error",u=>{t.agent&&u.code=="ECONNRESET"?a=setTimeout(()=>{s(u)},a_):s(u)}),l.on("timeout",()=>{l.destroy(new Error(`Request timeout after ${t.timeout}ms`))}),e&&l.write(oge(e)),t.timeout&&l.setTimeout(t.timeout),l.end()})}function If(n,e={},t){let i=u_(n),r=d_(i,e);return uge(i,e.data,r,t).catch(o=>{if(e5.error(`Fetch error for ${i}:`,r,o),r.agent&&r.agent.proxy){let{proxy:s}=r.agent;throw new Error(`Request failed using proxy ${s.host}: ${o.message}`)}else throw o})}var zU,Uw,KU,QU,VU,Jw,e5,a_,$w=D(()=>{"use strict";zU=sr(fU()),Uw=sr(OU()),KU=sr(YU()),QU=sr(GU()),VU=require("querystring"),Jw=require("url");Ce();Ti();Xe();ce();he();pe();ee();e5=J("model-fetch"),a_=ge(500,50)});var n5=v((h_,i5)=>{var Xw=require("buffer"),Fo=Xw.Buffer;function t5(n,e){for(var t in n)e[t]=n[t]}Fo.from&&Fo.alloc&&Fo.allocUnsafe&&Fo.allocUnsafeSlow?i5.exports=Xw:(t5(Xw,h_),h_.Buffer=tu);function tu(n,e,t){return Fo(n,e,t)}tu.prototype=Object.create(Fo.prototype);t5(Fo,tu);tu.from=function(n,e,t){if(typeof n=="number")throw new TypeError("Argument must not be a number");return Fo(n,e,t)};tu.alloc=function(n,e,t){if(typeof n!="number")throw new TypeError("Argument must be a number");var i=Fo(n);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};tu.allocUnsafe=function(n){if(typeof n!="number")throw new TypeError("Argument must be a number");return Fo(n)};tu.allocUnsafeSlow=function(n){if(typeof n!="number")throw new TypeError("Argument must be a number");return Xw.SlowBuffer(n)}});var u5=v((zBe,g_)=>{"use strict";g_.exports=wge;g_.exports.parse=Dge;var r5=require("path").basename,cge=n5().Buffer,dge=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,hge=/%[0-9A-Fa-f]{2}/,gge=/%([0-9A-Fa-f]{2})/g,s5=/[^\x20-\x7e\xa0-\xff]/g,pge=/\\([\u0000-\u007f])/g,fge=/([\\"])/g,o5=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,mge=/^[\x20-\x7e\x80-\xff]+$/,bge=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,yge=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,vge=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function wge(n,e){var t=e||{},i=t.type||"attachment",r=xge(n,t.fallback);return Cge(new l5(i,r))}function xge(n,e){if(n!==void 0){var t={};if(typeof n!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&s5.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var i=r5(n),r=mge.test(i),o=typeof e!="string"?e&&a5(i):r5(e),s=typeof o=="string"&&o!==i;return(s||!r||hge.test(i))&&(t["filename*"]=i),(r||s)&&(t.filename=s?o:i),t}}function Cge(n){var e=n.parameters,t=n.type;if(!t||typeof t!="string"||!bge.test(t))throw new TypeError("invalid type");var i=String(t).toLowerCase();if(e&&typeof e=="object")for(var r,o=Object.keys(e).sort(),s=0;s{"use strict";var c5=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);d5.exports=n=>n?Object.keys(n).map(e=>[c5.has(e)?c5.get(e):e,n[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var ex=v((QBe,w5)=>{"use strict";var h5=typeof process=="object"&&process?process:{stdout:null,stderr:null},_ge=require("events"),g5=require("stream"),p5=require("string_decoder").StringDecoder,Cs=Symbol("EOF"),Ss=Symbol("maybeEmitEnd"),Ra=Symbol("emittedEnd"),Gw=Symbol("emittingEnd"),Lf=Symbol("emittedError"),zw=Symbol("closed"),f5=Symbol("read"),Kw=Symbol("flush"),m5=Symbol("flushChunk"),An=Symbol("encoding"),Ds=Symbol("decoder"),Qw=Symbol("flowing"),Ff=Symbol("paused"),ld=Symbol("resume"),gi=Symbol("buffer"),Mo=Symbol("pipes"),Hi=Symbol("bufferLength"),p_=Symbol("bufferPush"),f_=Symbol("bufferShift"),an=Symbol("objectMode"),ln=Symbol("destroyed"),m_=Symbol("emitData"),b5=Symbol("emitEnd"),b_=Symbol("emitEnd2"),Ts=Symbol("async"),Mf=n=>Promise.resolve().then(n),y5=global._MP_NO_ITERATOR_SYMBOLS_!=="1",Ege=y5&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),Ige=y5&&Symbol.iterator||Symbol("iterator not implemented"),Lge=n=>n==="end"||n==="finish"||n==="prefinish",Fge=n=>n instanceof ArrayBuffer||typeof n=="object"&&n.constructor&&n.constructor.name==="ArrayBuffer"&&n.byteLength>=0,Mge=n=>!Buffer.isBuffer(n)&&ArrayBuffer.isView(n),Vw=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[ld](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},y_=class extends Vw{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=r=>t.emit("error",r),e.on("error",this.proxyErrors)}};w5.exports=class v5 extends g5{constructor(e){super(),this[Qw]=!1,this[Ff]=!1,this[Mo]=[],this[gi]=[],this[an]=e&&e.objectMode||!1,this[an]?this[An]=null:this[An]=e&&e.encoding||null,this[An]==="buffer"&&(this[An]=null),this[Ts]=e&&!!e.async||!1,this[Ds]=this[An]?new p5(this[An]):null,this[Cs]=!1,this[Ra]=!1,this[Gw]=!1,this[zw]=!1,this[Lf]=null,this.writable=!0,this.readable=!0,this[Hi]=0,this[ln]=!1,e&&e.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[gi]}),e&&e.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[Mo]})}get bufferLength(){return this[Hi]}get encoding(){return this[An]}set encoding(e){if(this[an])throw new Error("cannot set encoding in objectMode");if(this[An]&&e!==this[An]&&(this[Ds]&&this[Ds].lastNeed||this[Hi]))throw new Error("cannot change encoding");this[An]!==e&&(this[Ds]=e?new p5(e):null,this[gi].length&&(this[gi]=this[gi].map(t=>this[Ds].write(t)))),this[An]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[an]}set objectMode(e){this[an]=this[an]||!!e}get async(){return this[Ts]}set async(e){this[Ts]=this[Ts]||!!e}write(e,t,i){if(this[Cs])throw new Error("write after end");if(this[ln])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let r=this[Ts]?Mf:o=>o();return!this[an]&&!Buffer.isBuffer(e)&&(Mge(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):Fge(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[an]?(this.flowing&&this[Hi]!==0&&this[Kw](!0),this.flowing?this.emit("data",e):this[p_](e),this[Hi]!==0&&this.emit("readable"),i&&r(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[An]&&!this[Ds].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[An]&&(e=this[Ds].write(e)),this.flowing&&this[Hi]!==0&&this[Kw](!0),this.flowing?this.emit("data",e):this[p_](e),this[Hi]!==0&&this.emit("readable"),i&&r(i),this.flowing):(this[Hi]!==0&&this.emit("readable"),i&&r(i),this.flowing)}read(e){if(this[ln])return null;if(this[Hi]===0||e===0||e>this[Hi])return this[Ss](),null;this[an]&&(e=null),this[gi].length>1&&!this[an]&&(this.encoding?this[gi]=[this[gi].join("")]:this[gi]=[Buffer.concat(this[gi],this[Hi])]);let t=this[f5](e||null,this[gi][0]);return this[Ss](),t}[f5](e,t){return e===t.length||e===null?this[f_]():(this[gi][0]=t.slice(e),t=t.slice(0,e),this[Hi]-=e),this.emit("data",t),!this[gi].length&&!this[Cs]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[Cs]=!0,this.writable=!1,(this.flowing||!this[Ff])&&this[Ss](),this}[ld](){this[ln]||(this[Ff]=!1,this[Qw]=!0,this.emit("resume"),this[gi].length?this[Kw]():this[Cs]?this[Ss]():this.emit("drain"))}resume(){return this[ld]()}pause(){this[Qw]=!1,this[Ff]=!0}get destroyed(){return this[ln]}get flowing(){return this[Qw]}get paused(){return this[Ff]}[p_](e){this[an]?this[Hi]+=1:this[Hi]+=e.length,this[gi].push(e)}[f_](){return this[gi].length&&(this[an]?this[Hi]-=1:this[Hi]-=this[gi][0].length),this[gi].shift()}[Kw](e){do;while(this[m5](this[f_]()));!e&&!this[gi].length&&!this[Cs]&&this.emit("drain")}[m5](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[ln])return;let i=this[Ra];return t=t||{},e===h5.stdout||e===h5.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this[Mo].push(t.proxyErrors?new y_(this,e,t):new Vw(this,e,t)),this[Ts]?Mf(()=>this[ld]()):this[ld]()),e}unpipe(e){let t=this[Mo].find(i=>i.dest===e);t&&(this[Mo].splice(this[Mo].indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this[Mo].length&&!this.flowing?this[ld]():e==="readable"&&this[Hi]!==0?super.emit("readable"):Lge(e)&&this[Ra]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[Lf]&&(this[Ts]?Mf(()=>t.call(this,this[Lf])):t.call(this,this[Lf])),i}get emittedEnd(){return this[Ra]}[Ss](){!this[Gw]&&!this[Ra]&&!this[ln]&&this[gi].length===0&&this[Cs]&&(this[Gw]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[zw]&&this.emit("close"),this[Gw]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==ln&&this[ln])return;if(e==="data")return t?this[Ts]?Mf(()=>this[m_](t)):this[m_](t):!1;if(e==="end")return this[b5]();if(e==="close"){if(this[zw]=!0,!this[Ra]&&!this[ln])return;let o=super.emit("close");return this.removeAllListeners("close"),o}else if(e==="error"){this[Lf]=t;let o=super.emit("error",t);return this[Ss](),o}else if(e==="resume"){let o=super.emit("resume");return this[Ss](),o}else if(e==="finish"||e==="prefinish"){let o=super.emit(e);return this.removeAllListeners(e),o}let r=super.emit(e,t,...i);return this[Ss](),r}[m_](e){for(let i of this[Mo])i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Ss](),t}[b5](){this[Ra]||(this[Ra]=!0,this.readable=!1,this[Ts]?Mf(()=>this[b_]()):this[b_]())}[b_](){if(this[Ds]){let t=this[Ds].end();if(t){for(let i of this[Mo])i.dest.write(t);super.emit("data",t)}}for(let t of this[Mo])t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[an]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[an]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[an]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[an]?Promise.reject(new Error("cannot concat in objectMode")):this[An]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(ln,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[Ege](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[Cs])return Promise.resolve({done:!0});let i=null,r=null,o=u=>{this.removeListener("data",s),this.removeListener("end",a),r(u)},s=u=>{this.removeListener("error",o),this.removeListener("end",a),this.pause(),i({value:u,done:!!this[Cs]})},a=()=>{this.removeListener("error",o),this.removeListener("data",s),i({done:!0})},l=()=>o(new Error("stream destroyed"));return new Promise((u,c)=>{r=c,i=u,this.once(ln,l),this.once("error",o),this.once("end",a),this.once("data",s)})}}}[Ige](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[ln]?(e?this.emit("error",e):this.emit(ln),this):(this[ln]=!0,this[gi].length=0,this[Hi]=0,typeof this.close=="function"&&!this[zw]&&this.close(),e?this.emit("error",e):this.emit(ln),this)}static isStream(e){return!!e&&(e instanceof v5||e instanceof g5||e instanceof _ge&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var C5=v((VBe,x5)=>{var jge=require("zlib").constants||{ZLIB_VERNUM:4736};x5.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},jge))});var D_=v((eqe,I5)=>{"use strict";var S5=typeof process=="object"&&process?process:{stdout:null,stderr:null},Oge=require("events"),D5=require("stream"),T5=require("string_decoder").StringDecoder,ks=Symbol("EOF"),Ps=Symbol("maybeEmitEnd"),_a=Symbol("emittedEnd"),tx=Symbol("emittingEnd"),jf=Symbol("emittedError"),ix=Symbol("closed"),k5=Symbol("read"),nx=Symbol("flush"),P5=Symbol("flushChunk"),Nn=Symbol("encoding"),Rs=Symbol("decoder"),rx=Symbol("flowing"),Of=Symbol("paused"),ud=Symbol("resume"),Bi=Symbol("bufferLength"),v_=Symbol("bufferPush"),w_=Symbol("bufferShift"),un=Symbol("objectMode"),cn=Symbol("destroyed"),x_=Symbol("emitData"),R5=Symbol("emitEnd"),C_=Symbol("emitEnd2"),_s=Symbol("async"),Af=n=>Promise.resolve().then(n),_5=global._MP_NO_ITERATOR_SYMBOLS_!=="1",Age=_5&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),Nge=_5&&Symbol.iterator||Symbol("iterator not implemented"),Hge=n=>n==="end"||n==="finish"||n==="prefinish",Bge=n=>n instanceof ArrayBuffer||typeof n=="object"&&n.constructor&&n.constructor.name==="ArrayBuffer"&&n.byteLength>=0,qge=n=>!Buffer.isBuffer(n)&&ArrayBuffer.isView(n),ox=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[ud](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},S_=class extends ox{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=r=>t.emit("error",r),e.on("error",this.proxyErrors)}};I5.exports=class E5 extends D5{constructor(e){super(),this[rx]=!1,this[Of]=!1,this.pipes=[],this.buffer=[],this[un]=e&&e.objectMode||!1,this[un]?this[Nn]=null:this[Nn]=e&&e.encoding||null,this[Nn]==="buffer"&&(this[Nn]=null),this[_s]=e&&!!e.async||!1,this[Rs]=this[Nn]?new T5(this[Nn]):null,this[ks]=!1,this[_a]=!1,this[tx]=!1,this[ix]=!1,this[jf]=null,this.writable=!0,this.readable=!0,this[Bi]=0,this[cn]=!1}get bufferLength(){return this[Bi]}get encoding(){return this[Nn]}set encoding(e){if(this[un])throw new Error("cannot set encoding in objectMode");if(this[Nn]&&e!==this[Nn]&&(this[Rs]&&this[Rs].lastNeed||this[Bi]))throw new Error("cannot change encoding");this[Nn]!==e&&(this[Rs]=e?new T5(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Rs].write(t)))),this[Nn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[un]}set objectMode(e){this[un]=this[un]||!!e}get async(){return this[_s]}set async(e){this[_s]=this[_s]||!!e}write(e,t,i){if(this[ks])throw new Error("write after end");if(this[cn])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let r=this[_s]?Af:o=>o();return!this[un]&&!Buffer.isBuffer(e)&&(qge(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):Bge(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[un]?(this.flowing&&this[Bi]!==0&&this[nx](!0),this.flowing?this.emit("data",e):this[v_](e),this[Bi]!==0&&this.emit("readable"),i&&r(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[Nn]&&!this[Rs].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[Nn]&&(e=this[Rs].write(e)),this.flowing&&this[Bi]!==0&&this[nx](!0),this.flowing?this.emit("data",e):this[v_](e),this[Bi]!==0&&this.emit("readable"),i&&r(i),this.flowing):(this[Bi]!==0&&this.emit("readable"),i&&r(i),this.flowing)}read(e){if(this[cn])return null;if(this[Bi]===0||e===0||e>this[Bi])return this[Ps](),null;this[un]&&(e=null),this.buffer.length>1&&!this[un]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[Bi])]);let t=this[k5](e||null,this.buffer[0]);return this[Ps](),t}[k5](e,t){return e===t.length||e===null?this[w_]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[Bi]-=e),this.emit("data",t),!this.buffer.length&&!this[ks]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[ks]=!0,this.writable=!1,(this.flowing||!this[Of])&&this[Ps](),this}[ud](){this[cn]||(this[Of]=!1,this[rx]=!0,this.emit("resume"),this.buffer.length?this[nx]():this[ks]?this[Ps]():this.emit("drain"))}resume(){return this[ud]()}pause(){this[rx]=!1,this[Of]=!0}get destroyed(){return this[cn]}get flowing(){return this[rx]}get paused(){return this[Of]}[v_](e){this[un]?this[Bi]+=1:this[Bi]+=e.length,this.buffer.push(e)}[w_](){return this.buffer.length&&(this[un]?this[Bi]-=1:this[Bi]-=this.buffer[0].length),this.buffer.shift()}[nx](e){do;while(this[P5](this[w_]()));!e&&!this.buffer.length&&!this[ks]&&this.emit("drain")}[P5](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[cn])return;let i=this[_a];return t=t||{},e===S5.stdout||e===S5.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new S_(this,e,t):new ox(this,e,t)),this[_s]?Af(()=>this[ud]()):this[ud]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[ud]():e==="readable"&&this[Bi]!==0?super.emit("readable"):Hge(e)&&this[_a]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[jf]&&(this[_s]?Af(()=>t.call(this,this[jf])):t.call(this,this[jf])),i}get emittedEnd(){return this[_a]}[Ps](){!this[tx]&&!this[_a]&&!this[cn]&&this.buffer.length===0&&this[ks]&&(this[tx]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[ix]&&this.emit("close"),this[tx]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==cn&&this[cn])return;if(e==="data")return t?this[_s]?Af(()=>this[x_](t)):this[x_](t):!1;if(e==="end")return this[R5]();if(e==="close"){if(this[ix]=!0,!this[_a]&&!this[cn])return;let o=super.emit("close");return this.removeAllListeners("close"),o}else if(e==="error"){this[jf]=t;let o=super.emit("error",t);return this[Ps](),o}else if(e==="resume"){let o=super.emit("resume");return this[Ps](),o}else if(e==="finish"||e==="prefinish"){let o=super.emit(e);return this.removeAllListeners(e),o}let r=super.emit(e,t,...i);return this[Ps](),r}[x_](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Ps](),t}[R5](){this[_a]||(this[_a]=!0,this.readable=!1,this[_s]?Af(()=>this[C_]()):this[C_]())}[C_](){if(this[Rs]){let t=this[Rs].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[un]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[un]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[un]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[un]?Promise.reject(new Error("cannot concat in objectMode")):this[Nn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(cn,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[Age](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[ks])return Promise.resolve({done:!0});let i=null,r=null,o=u=>{this.removeListener("data",s),this.removeListener("end",a),r(u)},s=u=>{this.removeListener("error",o),this.removeListener("end",a),this.pause(),i({value:u,done:!!this[ks]})},a=()=>{this.removeListener("error",o),this.removeListener("data",s),i({done:!0})},l=()=>o(new Error("stream destroyed"));return new Promise((u,c)=>{r=c,i=u,this.once(cn,l),this.once("error",o),this.once("end",a),this.once("data",s)})}}}[Nge](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[cn]?(e?this.emit("error",e):this.emit(cn),this):(this[cn]=!0,this.buffer.length=0,this[Bi]=0,typeof this.close=="function"&&!this[ix]&&this.close(),e?this.emit("error",e):this.emit(cn),this)}static isStream(e){return!!e&&(e instanceof E5||e instanceof D5||e instanceof Oge&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var B_=v(tr=>{"use strict";var __=require("assert"),Ea=require("buffer").Buffer,M5=require("zlib"),iu=tr.constants=C5(),Wge=D_(),L5=Ea.concat,nu=Symbol("_superWrite"),dd=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},Yge=Symbol("opts"),Nf=Symbol("flushFlag"),F5=Symbol("finishFlushFlag"),H_=Symbol("fullFlushFlag"),qt=Symbol("handle"),sx=Symbol("onError"),cd=Symbol("sawError"),T_=Symbol("level"),k_=Symbol("strategy"),P_=Symbol("ended"),tqe=Symbol("_defaultFullFlush"),ax=class extends Wge{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[cd]=!1,this[P_]=!1,this[Yge]=e,this[Nf]=e.flush,this[F5]=e.finishFlush;try{this[qt]=new M5[t](e)}catch(i){throw new dd(i)}this[sx]=i=>{this[cd]||(this[cd]=!0,this.close(),this.emit("error",i))},this[qt].on("error",i=>this[sx](new dd(i))),this.once("end",()=>this.close)}close(){this[qt]&&(this[qt].close(),this[qt]=null,this.emit("close"))}reset(){if(!this[cd])return __(this[qt],"zlib binding closed"),this[qt].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[H_]),this.write(Object.assign(Ea.alloc(0),{[Nf]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[F5]),this[P_]=!0,super.end(null,null,i)}get ended(){return this[P_]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=Ea.from(e,t)),this[cd])return;__(this[qt],"zlib binding closed");let r=this[qt]._handle,o=r.close;r.close=()=>{};let s=this[qt].close;this[qt].close=()=>{},Ea.concat=u=>u;let a;try{let u=typeof e[Nf]=="number"?e[Nf]:this[Nf];a=this[qt]._processChunk(e,u),Ea.concat=L5}catch(u){Ea.concat=L5,this[sx](new dd(u))}finally{this[qt]&&(this[qt]._handle=r,r.close=o,this[qt].close=s,this[qt].removeAllListeners("error"))}this[qt]&&this[qt].on("error",u=>this[sx](new dd(u)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[nu](Ea.from(a[0]));for(let u=1;u{this.flush(r),o()};try{this[qt].params(e,t)}finally{this[qt].flush=i}this[qt]&&(this[T_]=e,this[k_]=t)}}}},E_=class extends Es{constructor(e){super(e,"Deflate")}},I_=class extends Es{constructor(e){super(e,"Inflate")}},R_=Symbol("_portable"),L_=class extends Es{constructor(e){super(e,"Gzip"),this[R_]=e&&!!e.portable}[nu](e){return this[R_]?(this[R_]=!1,e[9]=255,super[nu](e)):super[nu](e)}},F_=class extends Es{constructor(e){super(e,"Gunzip")}},M_=class extends Es{constructor(e){super(e,"DeflateRaw")}},j_=class extends Es{constructor(e){super(e,"InflateRaw")}},O_=class extends Es{constructor(e){super(e,"Unzip")}},lx=class extends ax{constructor(e,t){e=e||{},e.flush=e.flush||iu.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||iu.BROTLI_OPERATION_FINISH,super(e,t),this[H_]=iu.BROTLI_OPERATION_FLUSH}},A_=class extends lx{constructor(e){super(e,"BrotliCompress")}},N_=class extends lx{constructor(e){super(e,"BrotliDecompress")}};tr.Deflate=E_;tr.Inflate=I_;tr.Gzip=L_;tr.Gunzip=F_;tr.DeflateRaw=M_;tr.InflateRaw=j_;tr.Unzip=O_;typeof M5.BrotliCompress=="function"?(tr.BrotliCompress=A_,tr.BrotliDecompress=N_):tr.BrotliCompress=tr.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var hd=v((rqe,j5)=>{var Zge=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;j5.exports=Zge!=="win32"?n=>n:n=>n&&n.replace(/\\/g,"/")});var ux=v((sqe,O5)=>{"use strict";var Jge=ex(),q_=hd(),W_=Symbol("slurp");O5.exports=class extends Jge{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=q_(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=q_(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[W_](t),i&&this[W_](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,r=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,r-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[W_](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?q_(e[i]):e[i])}}});var Y_=v(cx=>{"use strict";cx.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);cx.code=new Map(Array.from(cx.name).map(n=>[n[1],n[0]]))});var B5=v((lqe,H5)=>{"use strict";var Uge=(n,e)=>{if(Number.isSafeInteger(n))n<0?Xge(n,e):$ge(n,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},$ge=(n,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=n&255,n=Math.floor(n/256)},Xge=(n,e)=>{e[0]=255;var t=!1;n=n*-1;for(var i=e.length;i>1;i--){var r=n&255;n=Math.floor(n/256),t?e[i-1]=A5(r):r===0?e[i-1]=0:(t=!0,e[i-1]=N5(r))}},Gge=n=>{let e=n[0],t=e===128?Kge(n.slice(1,n.length)):e===255?zge(n):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},zge=n=>{for(var e=n.length,t=0,i=!1,r=e-1;r>-1;r--){var o=n[r],s;i?s=A5(o):o===0?s=o:(i=!0,s=N5(o)),s!==0&&(t-=s*Math.pow(256,e-r-1))}return t},Kge=n=>{for(var e=n.length,t=0,i=e-1;i>-1;i--){var r=n[i];r!==0&&(t+=r*Math.pow(256,e-i-1))}return t},A5=n=>(255^n)&255,N5=n=>(255^n)+1&255;H5.exports={encode:Uge,parse:Gge}});var pd=v((uqe,W5)=>{"use strict";var Z_=Y_(),gd=require("path").posix,q5=B5(),J_=Symbol("slurp"),ir=Symbol("type"),X_=class{constructor(e,t,i,r){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[ir]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,r):e&&this.set(e)}decode(e,t,i,r){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=ru(e,t,100),this.mode=Ia(e,t+100,8),this.uid=Ia(e,t+108,8),this.gid=Ia(e,t+116,8),this.size=Ia(e,t+124,12),this.mtime=U_(e,t+136,12),this.cksum=Ia(e,t+148,12),this[J_](i),this[J_](r,!0),this[ir]=ru(e,t+156,1),this[ir]===""&&(this[ir]="0"),this[ir]==="0"&&this.path.slice(-1)==="/"&&(this[ir]="5"),this[ir]==="5"&&(this.size=0),this.linkpath=ru(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=ru(e,t+265,32),this.gname=ru(e,t+297,32),this.devmaj=Ia(e,t+329,8),this.devmin=Ia(e,t+337,8),e[t+475]!==0){let s=ru(e,t+345,155);this.path=s+"/"+this.path}else{let s=ru(e,t+345,130);s&&(this.path=s+"/"+this.path),this.atime=U_(e,t+476,12),this.ctime=U_(e,t+488,12)}let o=8*32;for(let s=t;s=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,r=Qge(this.path||"",i),o=r[0],s=r[1];this.needPax=r[2],this.needPax=ou(e,t,100,o)||this.needPax,this.needPax=La(e,t+100,8,this.mode)||this.needPax,this.needPax=La(e,t+108,8,this.uid)||this.needPax,this.needPax=La(e,t+116,8,this.gid)||this.needPax,this.needPax=La(e,t+124,12,this.size)||this.needPax,this.needPax=$_(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[ir].charCodeAt(0),this.needPax=ou(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=ou(e,t+265,32,this.uname)||this.needPax,this.needPax=ou(e,t+297,32,this.gname)||this.needPax,this.needPax=La(e,t+329,8,this.devmaj)||this.needPax,this.needPax=La(e,t+337,8,this.devmin)||this.needPax,this.needPax=ou(e,t+345,i,s)||this.needPax,e[t+475]!==0?this.needPax=ou(e,t+345,155,s)||this.needPax:(this.needPax=ou(e,t+345,130,s)||this.needPax,this.needPax=$_(e,t+476,12,this.atime)||this.needPax,this.needPax=$_(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let i=n,r="",o,s=gd.parse(n).root||".";if(Buffer.byteLength(i)<100)o=[i,r,!1];else{r=gd.dirname(i),i=gd.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(r)<=e?o=[i,r,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(r)<=e?o=[i.slice(0,100-1),r,!0]:(i=gd.join(gd.basename(r),i),r=gd.dirname(r));while(r!==s&&!o);o||(o=[n.slice(0,100-1),"",!0])}return o},ru=(n,e,t)=>n.slice(e,e+t).toString("utf8").replace(/\0.*/,""),U_=(n,e,t)=>Vge(Ia(n,e,t)),Vge=n=>n===null?null:new Date(n*1e3),Ia=(n,e,t)=>n[e]&128?q5.parse(n.slice(e,e+t)):tpe(n,e,t),epe=n=>isNaN(n)?null:n,tpe=(n,e,t)=>epe(parseInt(n.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),ipe={12:8589934591,8:2097151},La=(n,e,t,i)=>i===null?!1:i>ipe[t]||i<0?(q5.encode(i,n.slice(e,e+t)),!0):(npe(n,e,t,i),!1),npe=(n,e,t,i)=>n.write(rpe(i,t),e,t,"ascii"),rpe=(n,e)=>ope(Math.floor(n).toString(8),e),ope=(n,e)=>(n.length===e-1?n:new Array(e-n.length-1).join("0")+n+" ")+"\0",$_=(n,e,t,i)=>i===null?!1:La(n,e,t,i.getTime()/1e3),spe=new Array(156).join("\0"),ou=(n,e,t,i)=>i===null?!1:(n.write(i+spe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);W5.exports=X_});var dx=v((cqe,Y5)=>{"use strict";var ape=pd(),lpe=require("path"),Hf=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),r=Buffer.allocUnsafe(i);for(let o=0;o<512;o++)r[o]=0;new ape({path:("PaxHeader/"+lpe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(r),r.write(e,512,t,"utf8");for(let o=t+512;o=Math.pow(10,o)&&(o+=1),o+r+i}};Hf.parse=(n,e,t)=>new Hf(upe(cpe(n),e),t);var upe=(n,e)=>e?Object.keys(n).reduce((t,i)=>(t[i]=n[i],t),e):n,cpe=n=>n.replace(/\n$/,"").split(` +`).reduce(dpe,Object.create(null)),dpe=(n,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return n;e=e.slice((t+" ").length);let i=e.split("="),r=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!r)return n;let o=i.join("=");return n[r]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(r)?new Date(o*1e3):/^[0-9]+$/.test(o)?+o:o,n};Y5.exports=Hf});var fd=v((dqe,Z5)=>{Z5.exports=n=>{let e=n.length-1,t=-1;for(;e>-1&&n.charAt(e)==="/";)t=e,e--;return t===-1?n:n.slice(0,t)}});var hx=v((hqe,J5)=>{"use strict";J5.exports=n=>class extends n{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var z_=v((pqe,U5)=>{"use strict";var gx=["|","<",">","?",":"],G_=gx.map(n=>String.fromCharCode(61440+n.charCodeAt(0))),hpe=new Map(gx.map((n,e)=>[n,G_[e]])),gpe=new Map(G_.map((n,e)=>[n,gx[e]]));U5.exports={encode:n=>gx.reduce((e,t)=>e.split(t).join(hpe.get(t)),n),decode:n=>G_.reduce((e,t)=>e.split(t).join(gpe.get(t)),n)}});var K_=v((fqe,X5)=>{var{isAbsolute:ppe,parse:$5}=require("path").win32;X5.exports=n=>{let e="",t=$5(n);for(;ppe(n)||t.root;){let i=n.charAt(0)==="/"&&n.slice(0,4)!=="//?/"?"/":t.root;n=n.slice(i.length),e+=i,t=$5(n)}return[e,n]}});var z5=v((mqe,G5)=>{"use strict";G5.exports=(n,e,t)=>(n&=4095,t&&(n=(n|384)&-19),e&&(n&256&&(n|=64),n&32&&(n|=8),n&4&&(n|=1)),n)});var aE=v((vqe,c$)=>{"use strict";var n$=ex(),r$=dx(),o$=pd(),Oo=require("fs"),K5=require("path"),jo=hd(),fpe=fd(),s$=(n,e)=>e?(n=jo(n).replace(/^\.(\/|$)/,""),fpe(e)+"/"+n):jo(n),mpe=16*1024*1024,Q5=Symbol("process"),V5=Symbol("file"),e$=Symbol("directory"),V_=Symbol("symlink"),t$=Symbol("hardlink"),Bf=Symbol("header"),px=Symbol("read"),eE=Symbol("lstat"),fx=Symbol("onlstat"),tE=Symbol("onread"),iE=Symbol("onreadlink"),nE=Symbol("openfile"),rE=Symbol("onopenfile"),Fa=Symbol("close"),mx=Symbol("mode"),oE=Symbol("awaitDrain"),Q_=Symbol("ondrain"),Ao=Symbol("prefix"),i$=Symbol("hadError"),a$=hx(),bpe=z_(),l$=K_(),u$=z5(),bx=a$(class extends n${constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=jo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||mpe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=jo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?jo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[r,o]=l$(this.path);r&&(this.path=o,i=r)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=bpe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=jo(t.absolute||K5.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[fx](this.statCache.get(this.absolute)):this[eE]()}emit(e,...t){return e==="error"&&(this[i$]=!0),super.emit(e,...t)}[eE](){Oo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[fx](t)})}[fx](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=vpe(e),this.emit("stat",e),this[Q5]()}[Q5](){switch(this.type){case"File":return this[V5]();case"Directory":return this[e$]();case"SymbolicLink":return this[V_]();default:return this.end()}}[mx](e){return u$(e,this.type==="Directory",this.portable)}[Ao](e){return s$(e,this.prefix)}[Bf](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new o$({path:this[Ao](this.path),linkpath:this.type==="Link"?this[Ao](this.linkpath):this.linkpath,mode:this[mx](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new r$({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Ao](this.path),linkpath:this.type==="Link"?this[Ao](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[e$](){this.path.slice(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[Bf](),this.end()}[V_](){Oo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[iE](t)})}[iE](e){this.linkpath=jo(e),this[Bf](),this.end()}[t$](e){this.type="Link",this.linkpath=jo(K5.relative(this.cwd,e)),this.stat.size=0,this[Bf](),this.end()}[V5](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[t$](t)}this.linkCache.set(e,this.absolute)}if(this[Bf](),this.stat.size===0)return this.end();this[nE]()}[nE](){Oo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[rE](t)})}[rE](e){if(this.fd=e,this[i$])return this[Fa]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[px]()}[px](){let{fd:e,buf:t,offset:i,length:r,pos:o}=this;Oo.read(e,t,i,r,o,(s,a)=>{if(s)return this[Fa](()=>this.emit("error",s));this[tE](a)})}[Fa](e){Oo.close(this.fd,e)}[tE](e){if(e<=0&&this.remain>0){let r=new Error("encountered unexpected EOF");return r.path=this.absolute,r.syscall="read",r.code="EOF",this[Fa](()=>this.emit("error",r))}if(e>this.remain){let r=new Error("did not encounter expected EOF");return r.path=this.absolute,r.syscall="read",r.code="EOF",this[Fa](()=>this.emit("error",r))}if(e===this.remain)for(let r=e;rthis[Q_]())}[oE](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[px]()}}),sE=class extends bx{[eE](){this[fx](Oo.lstatSync(this.absolute))}[V_](){this[iE](Oo.readlinkSync(this.absolute))}[nE](){this[rE](Oo.openSync(this.absolute,"r"))}[px](){let e=!0;try{let{fd:t,buf:i,offset:r,length:o,pos:s}=this,a=Oo.readSync(t,i,r,o,s);this[tE](a),e=!1}finally{if(e)try{this[Fa](()=>{})}catch{}}}[oE](e){e()}[Fa](e){Oo.closeSync(this.fd),e()}},ype=a$(class extends n${constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=jo(e.path),this.mode=this[mx](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=jo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[r,o]=l$(this.path);r&&(this.path=o,i=r)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new o$({path:this[Ao](this.path),linkpath:this.type==="Link"?this[Ao](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new r$({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Ao](this.path),linkpath:this.type==="Link"?this[Ao](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Ao](e){return s$(e,this.prefix)}[mx](e){return u$(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});bx.Sync=sE;bx.Tar=ype;var vpe=n=>n.isFile()?"File":n.isDirectory()?"Directory":n.isSymbolicLink()?"SymbolicLink":"Unsupported";c$.exports=bx});var kx=v((xqe,b$)=>{"use strict";var Dx=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},wpe=ex(),xpe=B_(),Cpe=ux(),mE=aE(),Spe=mE.Sync,Dpe=mE.Tar,Tpe=$b(),d$=Buffer.alloc(1024),wx=Symbol("onStat"),yx=Symbol("ended"),No=Symbol("queue"),md=Symbol("current"),su=Symbol("process"),vx=Symbol("processing"),h$=Symbol("processJob"),Ho=Symbol("jobs"),lE=Symbol("jobDone"),xx=Symbol("addFSEntry"),g$=Symbol("addTarEntry"),hE=Symbol("stat"),gE=Symbol("readdir"),Cx=Symbol("onreaddir"),Sx=Symbol("pipe"),p$=Symbol("entry"),uE=Symbol("entryOpt"),pE=Symbol("writeEntryClass"),m$=Symbol("write"),cE=Symbol("ondrain"),Tx=require("fs"),f$=require("path"),kpe=hx(),dE=hd(),bE=kpe(class extends wpe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=dE(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[pE]=mE,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new xpe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[cE]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[cE]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[No]=new Tpe,this[Ho]=0,this.jobs=+e.jobs||4,this[vx]=!1,this[yx]=!1}[m$](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[yx]=!0,this[su](),this}write(e){if(this[yx])throw new Error("write after end");return e instanceof Cpe?this[g$](e):this[xx](e),this.flowing}[g$](e){let t=dE(f$.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new Dx(e.path,t,!1);i.entry=new Dpe(e,this[uE](i)),i.entry.on("end",r=>this[lE](i)),this[Ho]+=1,this[No].push(i)}this[su]()}[xx](e){let t=dE(f$.resolve(this.cwd,e));this[No].push(new Dx(e,t)),this[su]()}[hE](e){e.pending=!0,this[Ho]+=1;let t=this.follow?"stat":"lstat";Tx[t](e.absolute,(i,r)=>{e.pending=!1,this[Ho]-=1,i?this.emit("error",i):this[wx](e,r)})}[wx](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[su]()}[gE](e){e.pending=!0,this[Ho]+=1,Tx.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[Ho]-=1,t)return this.emit("error",t);this[Cx](e,i)})}[Cx](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[su]()}[su](){if(!this[vx]){this[vx]=!0;for(let e=this[No].head;e!==null&&this[Ho]this.warn(t,i,r),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[p$](e){this[Ho]+=1;try{return new this[pE](e.path,this[uE](e)).on("end",()=>this[lE](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[cE](){this[md]&&this[md].entry&&this[md].entry.resume()}[Sx](e){e.piped=!0,e.readdir&&e.readdir.forEach(r=>{let o=e.path,s=o==="./"?"":o.replace(/\/*$/,"/");this[xx](s+r)});let t=e.entry,i=this.zip;i?t.on("data",r=>{i.write(r)||t.pause()}):t.on("data",r=>{super.write(r)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),fE=class extends bE{constructor(e){super(e),this[pE]=Spe}pause(){}resume(){}[hE](e){let t=this.follow?"statSync":"lstatSync";this[wx](e,Tx[t](e.absolute))}[gE](e,t){this[Cx](e,Tx.readdirSync(e.absolute))}[Sx](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(r=>{let o=e.path,s=o==="./"?"":o.replace(/\/*$/,"/");this[xx](s+r)}),i?t.on("data",r=>{i.write(r)}):t.on("data",r=>{super[m$](r)})}};bE.Sync=fE;b$.exports=bE});var Dd=v(Wf=>{"use strict";var Ppe=D_(),Rpe=require("events").EventEmitter,Hn=require("fs"),wE=Hn.writev;if(!wE){let n=process.binding("fs"),e=n.FSReqWrap||n.FSReqCallback;wE=(t,i,r,o)=>{let s=(l,u)=>o(l,u,i),a=new e;a.oncomplete=s,n.writeBuffers(t,i,r,a)}}var Cd=Symbol("_autoClose"),uo=Symbol("_close"),qf=Symbol("_ended"),Ft=Symbol("_fd"),y$=Symbol("_finished"),ja=Symbol("_flags"),yE=Symbol("_flush"),xE=Symbol("_handleChunk"),CE=Symbol("_makeBuf"),Ix=Symbol("_mode"),Px=Symbol("_needDrain"),wd=Symbol("_onerror"),Sd=Symbol("_onopen"),vE=Symbol("_onread"),yd=Symbol("_onwrite"),Oa=Symbol("_open"),Is=Symbol("_path"),au=Symbol("_pos"),Bo=Symbol("_queue"),vd=Symbol("_read"),v$=Symbol("_readSize"),Ma=Symbol("_reading"),Rx=Symbol("_remain"),w$=Symbol("_size"),_x=Symbol("_write"),bd=Symbol("_writing"),Ex=Symbol("_defaultFlag"),xd=Symbol("_errored"),Lx=class extends Ppe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[xd]=!1,this[Ft]=typeof t.fd=="number"?t.fd:null,this[Is]=e,this[v$]=t.readSize||16*1024*1024,this[Ma]=!1,this[w$]=typeof t.size=="number"?t.size:1/0,this[Rx]=this[w$],this[Cd]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[Ft]=="number"?this[vd]():this[Oa]()}get fd(){return this[Ft]}get path(){return this[Is]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Oa](){Hn.open(this[Is],"r",(e,t)=>this[Sd](e,t))}[Sd](e,t){e?this[wd](e):(this[Ft]=t,this.emit("open",t),this[vd]())}[CE](){return Buffer.allocUnsafe(Math.min(this[v$],this[Rx]))}[vd](){if(!this[Ma]){this[Ma]=!0;let e=this[CE]();if(e.length===0)return process.nextTick(()=>this[vE](null,0,e));Hn.read(this[Ft],e,0,e.length,null,(t,i,r)=>this[vE](t,i,r))}}[vE](e,t,i){this[Ma]=!1,e?this[wd](e):this[xE](t,i)&&this[vd]()}[uo](){if(this[Cd]&&typeof this[Ft]=="number"){let e=this[Ft];this[Ft]=null,Hn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[wd](e){this[Ma]=!0,this[uo](),this.emit("error",e)}[xE](e,t){let i=!1;return this[Rx]-=e,e>0&&(i=super.write(ethis[Sd](e,t))}[Sd](e,t){this[Ex]&&this[ja]==="r+"&&e&&e.code==="ENOENT"?(this[ja]="w",this[Oa]()):e?this[wd](e):(this[Ft]=t,this.emit("open",t),this[yE]())}end(e,t){return e&&this.write(e,t),this[qf]=!0,!this[bd]&&!this[Bo].length&&typeof this[Ft]=="number"&&this[yd](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[qf]?(this.emit("error",new Error("write() after end()")),!1):this[Ft]===null||this[bd]||this[Bo].length?(this[Bo].push(e),this[Px]=!0,!1):(this[bd]=!0,this[_x](e),!0)}[_x](e){Hn.write(this[Ft],e,0,e.length,this[au],(t,i)=>this[yd](t,i))}[yd](e,t){e?this[wd](e):(this[au]!==null&&(this[au]+=t),this[Bo].length?this[yE]():(this[bd]=!1,this[qf]&&!this[y$]?(this[y$]=!0,this[uo](),this.emit("finish")):this[Px]&&(this[Px]=!1,this.emit("drain"))))}[yE](){if(this[Bo].length===0)this[qf]&&this[yd](null,0);else if(this[Bo].length===1)this[_x](this[Bo].pop());else{let e=this[Bo];this[Bo]=[],wE(this[Ft],e,this[au],(t,i)=>this[yd](t,i))}}[uo](){if(this[Cd]&&typeof this[Ft]=="number"){let e=this[Ft];this[Ft]=null,Hn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},DE=class extends Fx{[Oa](){let e;if(this[Ex]&&this[ja]==="r+")try{e=Hn.openSync(this[Is],this[ja],this[Ix])}catch(t){if(t.code==="ENOENT")return this[ja]="w",this[Oa]();throw t}else e=Hn.openSync(this[Is],this[ja],this[Ix]);this[Sd](null,e)}[uo](){if(this[Cd]&&typeof this[Ft]=="number"){let e=this[Ft];this[Ft]=null,Hn.closeSync(e),this.emit("close")}}[_x](e){let t=!0;try{this[yd](null,Hn.writeSync(this[Ft],e,0,e.length,this[au])),t=!1}finally{if(t)try{this[uo]()}catch{}}}};Wf.ReadStream=Lx;Wf.ReadStreamSync=SE;Wf.WriteStream=Fx;Wf.WriteStreamSync=DE});var Bx=v((Dqe,R$)=>{"use strict";var _pe=hx(),Epe=pd(),Ipe=require("events"),Lpe=$b(),Fpe=1024*1024,Mpe=ux(),x$=dx(),jpe=B_(),{nextTick:Ope}=require("process"),TE=Buffer.from([31,139]),_r=Symbol("state"),lu=Symbol("writeEntry"),Ls=Symbol("readEntry"),kE=Symbol("nextEntry"),C$=Symbol("processEntry"),Er=Symbol("extendedHeader"),Yf=Symbol("globalExtendedHeader"),Aa=Symbol("meta"),S$=Symbol("emitMeta"),Ut=Symbol("buffer"),Fs=Symbol("queue"),uu=Symbol("ended"),D$=Symbol("emittedEnd"),cu=Symbol("emit"),Bn=Symbol("unzip"),Mx=Symbol("consumeChunk"),jx=Symbol("consumeChunkSub"),PE=Symbol("consumeBody"),T$=Symbol("consumeMeta"),k$=Symbol("consumeHeader"),Ox=Symbol("consuming"),RE=Symbol("bufferConcat"),_E=Symbol("maybeEnd"),Zf=Symbol("writing"),Na=Symbol("aborted"),Ax=Symbol("onDone"),du=Symbol("sawValidEntry"),Nx=Symbol("sawNullBlock"),Hx=Symbol("sawEOF"),P$=Symbol("closeStream"),Ape=n=>!0;R$.exports=_pe(class extends Ipe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[du]=null,this.on(Ax,t=>{(this[_r]==="begin"||this[du]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(Ax,e.ondone):this.on(Ax,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||Fpe,this.filter=typeof e.filter=="function"?e.filter:Ape,this.writable=!0,this.readable=!1,this[Fs]=new Lpe,this[Ut]=null,this[Ls]=null,this[lu]=null,this[_r]="begin",this[Aa]="",this[Er]=null,this[Yf]=null,this[uu]=!1,this[Bn]=null,this[Na]=!1,this[Nx]=!1,this[Hx]=!1,this.on("end",()=>this[P$]()),typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[k$](e,t){this[du]===null&&(this[du]=!1);let i;try{i=new Epe(e,t,this[Er],this[Yf])}catch(r){return this.warn("TAR_ENTRY_INVALID",r)}if(i.nullBlock)this[Nx]?(this[Hx]=!0,this[_r]==="begin"&&(this[_r]="header"),this[cu]("eof")):(this[Nx]=!0,this[cu]("nullBlock"));else if(this[Nx]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let r=i.type;if(/^(Symbolic)?Link$/.test(r)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(r)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let o=this[lu]=new Mpe(i,this[Er],this[Yf]);if(!this[du])if(o.remain){let s=()=>{o.invalid||(this[du]=!0)};o.on("end",s)}else this[du]=!0;o.meta?o.size>this.maxMetaEntrySize?(o.ignore=!0,this[cu]("ignoredEntry",o),this[_r]="ignore",o.resume()):o.size>0&&(this[Aa]="",o.on("data",s=>this[Aa]+=s),this[_r]="meta"):(this[Er]=null,o.ignore=o.ignore||!this.filter(o.path,o),o.ignore?(this[cu]("ignoredEntry",o),this[_r]=o.remain?"ignore":"header",o.resume()):(o.remain?this[_r]="body":(this[_r]="header",o.end()),this[Ls]?this[Fs].push(o):(this[Fs].push(o),this[kE]())))}}}[P$](){Ope(()=>this.emit("close"))}[C$](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[Ls]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[kE]()),t=!1)):(this[Ls]=null,t=!1),t}[kE](){do;while(this[C$](this[Fs].shift()));if(!this[Fs].length){let e=this[Ls];!e||e.flowing||e.size===e.remain?this[Zf]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[PE](e,t){let i=this[lu],r=i.blockRemain,o=r>=e.length&&t===0?e:e.slice(t,t+r);return i.write(o),i.blockRemain||(this[_r]="header",this[lu]=null,i.end()),o.length}[T$](e,t){let i=this[lu],r=this[PE](e,t);return this[lu]||this[S$](i),r}[cu](e,t,i){!this[Fs].length&&!this[Ls]?this.emit(e,t,i):this[Fs].push([e,t,i])}[S$](e){switch(this[cu]("meta",this[Aa]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Er]=x$.parse(this[Aa],this[Er],!1);break;case"GlobalExtendedHeader":this[Yf]=x$.parse(this[Aa],this[Yf],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Er]=this[Er]||Object.create(null),this[Er].path=this[Aa].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Er]=this[Er]||Object.create(null),this[Er].linkpath=this[Aa].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[Na]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[Na])return;if(this[Bn]===null&&e){if(this[Ut]&&(e=Buffer.concat([this[Ut],e]),this[Ut]=null),e.lengththis[Mx](o)),this[Bn].on("error",o=>this.abort(o)),this[Bn].on("end",o=>{this[uu]=!0,this[Mx]()}),this[Zf]=!0;let r=this[Bn][i?"end":"write"](e);return this[Zf]=!1,r}}this[Zf]=!0,this[Bn]?this[Bn].write(e):this[Mx](e),this[Zf]=!1;let t=this[Fs].length?!1:this[Ls]?this[Ls].flowing:!0;return!t&&!this[Fs].length&&this[Ls].once("drain",i=>this.emit("drain")),t}[RE](e){e&&!this[Na]&&(this[Ut]=this[Ut]?Buffer.concat([this[Ut],e]):e)}[_E](){if(this[uu]&&!this[D$]&&!this[Na]&&!this[Ox]){this[D$]=!0;let e=this[lu];if(e&&e.blockRemain){let t=this[Ut]?this[Ut].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Ut]&&e.write(this[Ut]),e.end()}this[cu](Ax)}}[Mx](e){if(this[Ox])this[RE](e);else if(!e&&!this[Ut])this[_E]();else{if(this[Ox]=!0,this[Ut]){this[RE](e);let t=this[Ut];this[Ut]=null,this[jx](t)}else this[jx](e);for(;this[Ut]&&this[Ut].length>=512&&!this[Na]&&!this[Hx];){let t=this[Ut];this[Ut]=null,this[jx](t)}this[Ox]=!1}(!this[Ut]||this[uu])&&this[_E]()}[jx](e){let t=0,i=e.length;for(;t+512<=i&&!this[Na]&&!this[Hx];)switch(this[_r]){case"begin":case"header":this[k$](e,t),t+=512;break;case"ignore":case"body":t+=this[PE](e,t);break;case"meta":t+=this[T$](e,t);break;default:throw new Error("invalid state: "+this[_r])}t{"use strict";var Npe=ad(),E$=Bx(),Td=require("fs"),Hpe=Dd(),_$=require("path"),EE=fd();L$.exports=(n,e,t)=>{typeof n=="function"?(t=n,e=null,n={}):Array.isArray(n)&&(e=n,n={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=Npe(n);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&qpe(i,e),i.noResume||Bpe(i),i.file&&i.sync?Wpe(i):i.file?Ype(i,t):I$(i)};var Bpe=n=>{let e=n.onentry;n.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},qpe=(n,e)=>{let t=new Map(e.map(o=>[EE(o),!0])),i=n.filter,r=(o,s)=>{let a=s||_$.parse(o).root||".",l=o===a?!1:t.has(o)?t.get(o):r(_$.dirname(o),a);return t.set(o,l),l};n.filter=i?(o,s)=>i(o,s)&&r(EE(o)):o=>r(EE(o))},Wpe=n=>{let e=I$(n),t=n.file,i=!0,r;try{let o=Td.statSync(t),s=n.maxReadSize||16*1024*1024;if(o.size{let t=new E$(n),i=n.maxReadSize||16*1024*1024,r=n.file,o=new Promise((s,a)=>{t.on("error",a),t.on("end",s),Td.stat(r,(l,u)=>{if(l)a(l);else{let c=new Hpe.ReadStream(r,{readSize:i,size:u.size});c.on("error",a),c.pipe(t)}})});return e?o.then(e,e):o},I$=n=>new E$(n)});var N$=v((kqe,A$)=>{"use strict";var Zpe=ad(),Wx=kx(),F$=Dd(),M$=qx(),j$=require("path");A$.exports=(n,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(n)&&(e=n,n={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=Zpe(n);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?Jpe(i,e):i.file?Upe(i,e,t):i.sync?$pe(i,e):Xpe(i,e)};var Jpe=(n,e)=>{let t=new Wx.Sync(n),i=new F$.WriteStreamSync(n.file,{mode:n.mode||438});t.pipe(i),O$(t,e)},Upe=(n,e,t)=>{let i=new Wx(n),r=new F$.WriteStream(n.file,{mode:n.mode||438});i.pipe(r);let o=new Promise((s,a)=>{r.on("error",a),r.on("close",s),i.on("error",a)});return IE(i,e),t?o.then(t,t):o},O$=(n,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M$({file:j$.resolve(n.cwd,t.slice(1)),sync:!0,noResume:!0,onentry:i=>n.add(i)}):n.add(t)}),n.end()},IE=(n,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M$({file:j$.resolve(n.cwd,t.slice(1)),noResume:!0,onentry:i=>n.add(i)}).then(i=>IE(n,e));n.add(t)}n.end()},$pe=(n,e)=>{let t=new Wx.Sync(n);return O$(t,e),t},Xpe=(n,e)=>{let t=new Wx(n);return IE(t,e),t}});var LE=v((Pqe,J$)=>{"use strict";var Gpe=ad(),H$=kx(),nr=require("fs"),B$=Dd(),q$=qx(),W$=require("path"),Y$=pd();J$.exports=(n,e,t)=>{let i=Gpe(n);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zpe(i,e):Qpe(i,e,t)};var zpe=(n,e)=>{let t=new H$.Sync(n),i=!0,r,o;try{try{r=nr.openSync(n.file,"r+")}catch(l){if(l.code==="ENOENT")r=nr.openSync(n.file,"w+");else throw l}let s=nr.fstatSync(r),a=Buffer.alloc(512);e:for(o=0;os.size)break;o+=u,n.mtimeCache&&n.mtimeCache.set(l.path,l.mtime)}i=!1,Kpe(n,t,o,r,e)}finally{if(i)try{nr.closeSync(r)}catch{}}},Kpe=(n,e,t,i,r)=>{let o=new B$.WriteStreamSync(n.file,{fd:i,start:t});e.pipe(o),Vpe(e,r)},Qpe=(n,e,t)=>{e=Array.from(e);let i=new H$(n),r=(s,a,l)=>{let u=(f,m)=>{f?nr.close(s,y=>l(f)):l(null,m)},c=0;if(a===0)return u(null,0);let d=0,h=Buffer.alloc(512),g=(f,m)=>{if(f)return u(f);if(d+=m,d<512&&m)return nr.read(s,h,d,h.length-d,c+d,g);if(c===0&&h[0]===31&&h[1]===139)return u(new Error("cannot append to compressed archives"));if(d<512)return u(null,c);let y=new Y$(h);if(!y.cksumValid)return u(null,c);let w=512*Math.ceil(y.size/512);if(c+w+512>a||(c+=w+512,c>=a))return u(null,c);n.mtimeCache&&n.mtimeCache.set(y.path,y.mtime),d=0,nr.read(s,h,0,512,c,g)};nr.read(s,h,0,512,c,g)},o=new Promise((s,a)=>{i.on("error",a);let l="r+",u=(c,d)=>{if(c&&c.code==="ENOENT"&&l==="r+")return l="w+",nr.open(n.file,l,u);if(c)return a(c);nr.fstat(d,(h,g)=>{if(h)return nr.close(d,()=>a(h));r(d,g.size,(f,m)=>{if(f)return a(f);let y=new B$.WriteStream(n.file,{fd:d,start:m});i.pipe(y),y.on("error",a),y.on("close",s),Z$(i,e)})})};nr.open(n.file,l,u)});return t?o.then(t,t):o},Vpe=(n,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q$({file:W$.resolve(n.cwd,t.slice(1)),sync:!0,noResume:!0,onentry:i=>n.add(i)}):n.add(t)}),n.end()},Z$=(n,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q$({file:W$.resolve(n.cwd,t.slice(1)),noResume:!0,onentry:i=>n.add(i)}).then(i=>Z$(n,e));n.add(t)}n.end()}});var $$=v((Rqe,U$)=>{"use strict";var efe=ad(),tfe=LE();U$.exports=(n,e,t)=>{let i=efe(n);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),ife(i),tfe(i,e,t)};var ife=n=>{let e=n.filter;n.mtimeCache||(n.mtimeCache=new Map),n.filter=e?(t,i)=>e(t,i)&&!(n.mtimeCache.get(t)>i.mtime):(t,i)=>!(n.mtimeCache.get(t)>i.mtime)}});var z$=v((_qe,G$)=>{var{promisify:X$}=require("util"),Ha=require("fs"),nfe=n=>{if(!n)n={mode:511,fs:Ha};else if(typeof n=="object")n={mode:511,fs:Ha,...n};else if(typeof n=="number")n={mode:n,fs:Ha};else if(typeof n=="string")n={mode:parseInt(n,8),fs:Ha};else throw new TypeError("invalid options argument");return n.mkdir=n.mkdir||n.fs.mkdir||Ha.mkdir,n.mkdirAsync=X$(n.mkdir),n.stat=n.stat||n.fs.stat||Ha.stat,n.statAsync=X$(n.stat),n.statSync=n.statSync||n.fs.statSync||Ha.statSync,n.mkdirSync=n.mkdirSync||n.fs.mkdirSync||Ha.mkdirSync,n};G$.exports=nfe});var Q$=v((Eqe,K$)=>{var rfe=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:ofe,parse:sfe}=require("path"),afe=n=>{if(/\0/.test(n))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:n,code:"ERR_INVALID_ARG_VALUE"});if(n=ofe(n),rfe==="win32"){let e=/[*|"<>?:]/,{root:t}=sfe(n);if(e.test(n.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:n,code:"EINVAL"})}return n};K$.exports=afe});var nX=v((Iqe,iX)=>{var{dirname:V$}=require("path"),eX=(n,e,t=void 0)=>t===e?Promise.resolve():n.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?eX(n,V$(e),e):void 0),tX=(n,e,t=void 0)=>{if(t!==e)try{return n.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?tX(n,V$(e),e):void 0}};iX.exports={findMade:eX,findMadeSync:tX}});var jE=v((Lqe,oX)=>{var{dirname:rX}=require("path"),FE=(n,e,t)=>{e.recursive=!1;let i=rX(n);return i===n?e.mkdirAsync(n,e).catch(r=>{if(r.code!=="EISDIR")throw r}):e.mkdirAsync(n,e).then(()=>t||n,r=>{if(r.code==="ENOENT")return FE(i,e).then(o=>FE(n,e,o));if(r.code!=="EEXIST"&&r.code!=="EROFS")throw r;return e.statAsync(n).then(o=>{if(o.isDirectory())return t;throw r},()=>{throw r})})},ME=(n,e,t)=>{let i=rX(n);if(e.recursive=!1,i===n)try{return e.mkdirSync(n,e)}catch(r){if(r.code!=="EISDIR")throw r;return}try{return e.mkdirSync(n,e),t||n}catch(r){if(r.code==="ENOENT")return ME(n,e,ME(i,e,t));if(r.code!=="EEXIST"&&r.code!=="EROFS")throw r;try{if(!e.statSync(n).isDirectory())throw r}catch{throw r}}};oX.exports={mkdirpManual:FE,mkdirpManualSync:ME}});var lX=v((Fqe,aX)=>{var{dirname:sX}=require("path"),{findMade:lfe,findMadeSync:ufe}=nX(),{mkdirpManual:cfe,mkdirpManualSync:dfe}=jE(),hfe=(n,e)=>(e.recursive=!0,sX(n)===n?e.mkdirAsync(n,e):lfe(e,n).then(i=>e.mkdirAsync(n,e).then(()=>i).catch(r=>{if(r.code==="ENOENT")return cfe(n,e);throw r}))),gfe=(n,e)=>{if(e.recursive=!0,sX(n)===n)return e.mkdirSync(n,e);let i=ufe(e,n);try{return e.mkdirSync(n,e),i}catch(r){if(r.code==="ENOENT")return dfe(n,e);throw r}};aX.exports={mkdirpNative:hfe,mkdirpNativeSync:gfe}});var hX=v((Mqe,dX)=>{var uX=require("fs"),pfe=process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version,OE=pfe.replace(/^v/,"").split("."),cX=+OE[0]>10||+OE[0]==10&&+OE[1]>=12,ffe=cX?n=>n.mkdir===uX.mkdir:()=>!1,mfe=cX?n=>n.mkdirSync===uX.mkdirSync:()=>!1;dX.exports={useNative:ffe,useNativeSync:mfe}});var yX=v((jqe,bX)=>{var kd=z$(),Pd=Q$(),{mkdirpNative:gX,mkdirpNativeSync:pX}=lX(),{mkdirpManual:fX,mkdirpManualSync:mX}=jE(),{useNative:bfe,useNativeSync:yfe}=hX(),Rd=(n,e)=>(n=Pd(n),e=kd(e),bfe(e)?gX(n,e):fX(n,e)),vfe=(n,e)=>(n=Pd(n),e=kd(e),yfe(e)?pX(n,e):mX(n,e));Rd.sync=vfe;Rd.native=(n,e)=>gX(Pd(n),kd(e));Rd.manual=(n,e)=>fX(Pd(n),kd(e));Rd.nativeSync=(n,e)=>pX(Pd(n),kd(e));Rd.manualSync=(n,e)=>mX(Pd(n),kd(e));bX.exports=Rd});var TX=v((Oqe,DX)=>{"use strict";var Ir=require("fs"),hu=require("path"),wfe=Ir.lchown?"lchown":"chown",xfe=Ir.lchownSync?"lchownSync":"chownSync",wX=Ir.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),vX=(n,e,t)=>{try{return Ir[xfe](n,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},Cfe=(n,e,t)=>{try{return Ir.chownSync(n,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},Sfe=wX?(n,e,t,i)=>r=>{!r||r.code!=="EISDIR"?i(r):Ir.chown(n,e,t,i)}:(n,e,t,i)=>i,AE=wX?(n,e,t)=>{try{return vX(n,e,t)}catch(i){if(i.code!=="EISDIR")throw i;Cfe(n,e,t)}}:(n,e,t)=>vX(n,e,t),Dfe=process.version,xX=(n,e,t)=>Ir.readdir(n,e,t),Tfe=(n,e)=>Ir.readdirSync(n,e);/^v4\./.test(Dfe)&&(xX=(n,e,t)=>Ir.readdir(n,t));var Yx=(n,e,t,i)=>{Ir[wfe](n,e,t,Sfe(n,e,t,r=>{i(r&&r.code!=="ENOENT"?r:null)}))},CX=(n,e,t,i,r)=>{if(typeof e=="string")return Ir.lstat(hu.resolve(n,e),(o,s)=>{if(o)return r(o.code!=="ENOENT"?o:null);s.name=e,CX(n,s,t,i,r)});if(e.isDirectory())NE(hu.resolve(n,e.name),t,i,o=>{if(o)return r(o);let s=hu.resolve(n,e.name);Yx(s,t,i,r)});else{let o=hu.resolve(n,e.name);Yx(o,t,i,r)}},NE=(n,e,t,i)=>{xX(n,{withFileTypes:!0},(r,o)=>{if(r){if(r.code==="ENOENT")return i();if(r.code!=="ENOTDIR"&&r.code!=="ENOTSUP")return i(r)}if(r||!o.length)return Yx(n,e,t,i);let s=o.length,a=null,l=u=>{if(!a){if(u)return i(a=u);if(--s===0)return Yx(n,e,t,i)}};o.forEach(u=>CX(n,u,e,t,l))})},kfe=(n,e,t,i)=>{if(typeof e=="string")try{let r=Ir.lstatSync(hu.resolve(n,e));r.name=e,e=r}catch(r){if(r.code==="ENOENT")return;throw r}e.isDirectory()&&SX(hu.resolve(n,e.name),t,i),AE(hu.resolve(n,e.name),t,i)},SX=(n,e,t)=>{let i;try{i=Tfe(n,{withFileTypes:!0})}catch(r){if(r.code==="ENOENT")return;if(r.code==="ENOTDIR"||r.code==="ENOTSUP")return AE(n,e,t);throw r}return i&&i.length&&i.forEach(r=>kfe(n,r,e,t)),AE(n,e,t)};DX.exports=NE;NE.sync=SX});var _X=v((Aqe,HE)=>{"use strict";var kX=yX(),Lr=require("fs"),Zx=require("path"),PX=TX(),co=hd(),Jx=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},Ux=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},$x=(n,e)=>n.get(co(e)),Jf=(n,e,t)=>n.set(co(e),t),Pfe=(n,e)=>{Lr.stat(n,(t,i)=>{(t||!i.isDirectory())&&(t=new Ux(n,t&&t.code||"ENOTDIR")),e(t)})};HE.exports=(n,e,t)=>{n=co(n);let i=e.umask,r=e.mode|448,o=(r&i)!==0,s=e.uid,a=e.gid,l=typeof s=="number"&&typeof a=="number"&&(s!==e.processUid||a!==e.processGid),u=e.preserve,c=e.unlink,d=e.cache,h=co(e.cwd),g=(y,w)=>{y?t(y):(Jf(d,n,!0),w&&l?PX(w,s,a,x=>g(x)):o?Lr.chmod(n,r,t):t())};if(d&&$x(d,n)===!0)return g();if(n===h)return Pfe(n,g);if(u)return kX(n,{mode:r}).then(y=>g(null,y),g);let m=co(Zx.relative(h,n)).split("/");Xx(h,m,r,d,c,h,null,g)};var Xx=(n,e,t,i,r,o,s,a)=>{if(!e.length)return a(null,s);let l=e.shift(),u=co(Zx.resolve(n+"/"+l));if($x(i,u))return Xx(u,e,t,i,r,o,s,a);Lr.mkdir(u,t,RX(u,e,t,i,r,o,s,a))},RX=(n,e,t,i,r,o,s,a)=>l=>{l?Lr.lstat(n,(u,c)=>{if(u)u.path=u.path&&co(u.path),a(u);else if(c.isDirectory())Xx(n,e,t,i,r,o,s,a);else if(r)Lr.unlink(n,d=>{if(d)return a(d);Lr.mkdir(n,t,RX(n,e,t,i,r,o,s,a))});else{if(c.isSymbolicLink())return a(new Jx(n,n+"/"+e.join("/")));a(l)}}):(s=s||n,Xx(n,e,t,i,r,o,s,a))},Rfe=n=>{let e=!1,t="ENOTDIR";try{e=Lr.statSync(n).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new Ux(n,t)}};HE.exports.sync=(n,e)=>{n=co(n);let t=e.umask,i=e.mode|448,r=(i&t)!==0,o=e.uid,s=e.gid,a=typeof o=="number"&&typeof s=="number"&&(o!==e.processUid||s!==e.processGid),l=e.preserve,u=e.unlink,c=e.cache,d=co(e.cwd),h=y=>{Jf(c,n,!0),y&&a&&PX.sync(y,o,s),r&&Lr.chmodSync(n,i)};if(c&&$x(c,n)===!0)return h();if(n===d)return Rfe(d),h();if(l)return h(kX.sync(n,i));let f=co(Zx.relative(d,n)).split("/"),m=null;for(let y=f.shift(),w=d;y&&(w+="/"+y);y=f.shift())if(w=co(Zx.resolve(w)),!$x(c,w))try{Lr.mkdirSync(w,i),m=m||w,Jf(c,w,!0)}catch{let C=Lr.lstatSync(w);if(C.isDirectory()){Jf(c,w,!0);continue}else if(u){Lr.unlinkSync(w),Lr.mkdirSync(w,i),m=m||w,Jf(c,w,!0);continue}else if(C.isSymbolicLink())return new Jx(w,w+"/"+f.join("/"))}return h(m)}});var qE=v((Nqe,EX)=>{var BE=Object.create(null),{hasOwnProperty:_fe}=Object.prototype;EX.exports=n=>(_fe.call(BE,n)||(BE[n]=n.normalize("NFKD")),BE[n])});var MX=v((Hqe,FX)=>{var IX=require("assert"),Efe=qE(),Ife=fd(),{join:LX}=require("path"),Lfe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,Ffe=Lfe==="win32";FX.exports=()=>{let n=new Map,e=new Map,t=u=>u.split("/").slice(0,-1).reduce((d,h)=>(d.length&&(h=LX(d[d.length-1],h)),d.push(h||"/"),d),[]),i=new Set,r=u=>{let c=e.get(u);if(!c)throw new Error("function does not have any path reservations");return{paths:c.paths.map(d=>n.get(d)),dirs:[...c.dirs].map(d=>n.get(d))}},o=u=>{let{paths:c,dirs:d}=r(u);return c.every(h=>h[0]===u)&&d.every(h=>h[0]instanceof Set&&h[0].has(u))},s=u=>i.has(u)||!o(u)?!1:(i.add(u),u(()=>a(u)),!0),a=u=>{if(!i.has(u))return!1;let{paths:c,dirs:d}=e.get(u),h=new Set;return c.forEach(g=>{let f=n.get(g);IX.equal(f[0],u),f.length===1?n.delete(g):(f.shift(),typeof f[0]=="function"?h.add(f[0]):f[0].forEach(m=>h.add(m)))}),d.forEach(g=>{let f=n.get(g);IX(f[0]instanceof Set),f[0].size===1&&f.length===1?n.delete(g):f[0].size===1?(f.shift(),h.add(f[0])):f[0].delete(u)}),i.delete(u),h.forEach(g=>s(g)),!0};return{check:o,reserve:(u,c)=>{u=Ffe?["win32 parallelization disabled"]:u.map(h=>Efe(Ife(LX(h))).toLowerCase());let d=new Set(u.map(h=>t(h)).reduce((h,g)=>h.concat(g)));return e.set(c,{dirs:d,paths:u}),u.forEach(h=>{let g=n.get(h);g?g.push(c):n.set(h,[c])}),d.forEach(h=>{let g=n.get(h);g?g[g.length-1]instanceof Set?g[g.length-1].add(c):g.push(new Set([c])):n.set(h,[new Set([c])])}),s(c)}}}});var AX=v((Bqe,OX)=>{var Mfe=process.env.__FAKE_PLATFORM__||process.platform,jfe=Mfe==="win32",Ofe=global.__FAKE_TESTING_FS__||require("fs"),{O_CREAT:Afe,O_TRUNC:Nfe,O_WRONLY:Hfe,UV_FS_O_FILEMAP:jX=0}=Ofe.constants,Bfe=jfe&&!!jX,qfe=512*1024,Wfe=jX|Nfe|Afe|Hfe;OX.exports=Bfe?n=>n"w"});var zE=v((qqe,KX)=>{"use strict";var Yfe=require("assert"),Zfe=Bx(),ft=require("fs"),Jfe=Dd(),Ms=require("path"),XX=_X(),NX=z_(),Ufe=MX(),$fe=K_(),rr=hd(),Xfe=fd(),Gfe=qE(),HX=Symbol("onEntry"),ZE=Symbol("checkFs"),BX=Symbol("checkFs2"),Kx=Symbol("pruneCache"),JE=Symbol("isReusable"),Fr=Symbol("makeFs"),UE=Symbol("file"),$E=Symbol("directory"),Qx=Symbol("link"),qX=Symbol("symlink"),WX=Symbol("hardlink"),YX=Symbol("unsupported"),ZX=Symbol("checkPath"),Ba=Symbol("mkdir"),dn=Symbol("onError"),Gx=Symbol("pending"),JX=Symbol("pend"),_d=Symbol("unpend"),WE=Symbol("ended"),YE=Symbol("maybeClose"),XE=Symbol("skip"),Uf=Symbol("doChown"),$f=Symbol("uid"),Xf=Symbol("gid"),Gf=Symbol("checkedCwd"),GX=require("crypto"),zX=AX(),zfe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,zf=zfe==="win32",Kfe=(n,e)=>{if(!zf)return ft.unlink(n,e);let t=n+".DELETE."+GX.randomBytes(16).toString("hex");ft.rename(n,t,i=>{if(i)return e(i);ft.unlink(t,e)})},Qfe=n=>{if(!zf)return ft.unlinkSync(n);let e=n+".DELETE."+GX.randomBytes(16).toString("hex");ft.renameSync(n,e),ft.unlinkSync(e)},UX=(n,e,t)=>n===n>>>0?n:e===e>>>0?e:t,$X=n=>Gfe(Xfe(rr(n))).toLowerCase(),Vfe=(n,e)=>{e=$X(e);for(let t of n.keys()){let i=$X(t);(i===e||i.indexOf(e+"/")===0)&&n.delete(t)}},eme=n=>{for(let e of n.keys())n.delete(e)},Kf=class extends Zfe{constructor(e){if(e||(e={}),e.ondone=t=>{this[WE]=!0,this[YE]()},super(e),this[Gf]=!1,this.reservations=Ufe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[Gx]=0,this[WE]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||zf,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=rr(Ms.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[HX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[YE](){this[WE]&&this[Gx]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"))}[ZX](e){if(this.strip){let t=rr(e.path).split("/");if(t.length=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=rr(e.path),i=t.split("/");if(i.includes("..")||zf&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[r,o]=$fe(t);r&&(e.path=o,this.warn("TAR_ENTRY_INFO",`stripping ${r} from absolute path`,{entry:e,path:t}))}if(Ms.isAbsolute(e.path)?e.absolute=rr(Ms.resolve(e.path)):e.absolute=rr(Ms.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:rr(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=Ms.win32.parse(e.absolute);e.absolute=t+NX.encode(e.absolute.slice(t.length));let{root:i}=Ms.win32.parse(e.path);e.path=i+NX.encode(e.path.slice(i.length))}return!0}[HX](e){if(!this[ZX](e))return e.resume();switch(Yfe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[ZE](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[YX](e)}}[dn](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[_d](),t.resume())}[Ba](e,t,i){XX(rr(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[Uf](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[$f](e){return UX(this.uid,e.uid,this.processUid)}[Xf](e){return UX(this.gid,e.gid,this.processGid)}[UE](e,t){let i=e.mode&4095||this.fmode,r=new Jfe.WriteStream(e.absolute,{flags:zX(e.size),mode:i,autoClose:!1});r.on("error",l=>{r.fd&&ft.close(r.fd,()=>{}),r.write=()=>!0,this[dn](l,e),t()});let o=1,s=l=>{if(l){r.fd&&ft.close(r.fd,()=>{}),this[dn](l,e),t();return}--o===0&&ft.close(r.fd,u=>{u?this[dn](u,e):this[_d](),t()})};r.on("finish",l=>{let u=e.absolute,c=r.fd;if(e.mtime&&!this.noMtime){o++;let d=e.atime||new Date,h=e.mtime;ft.futimes(c,d,h,g=>g?ft.utimes(u,d,h,f=>s(f&&g)):s())}if(this[Uf](e)){o++;let d=this[$f](e),h=this[Xf](e);ft.fchown(c,d,h,g=>g?ft.chown(u,d,h,f=>s(f&&g)):s())}s()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[dn](l,e),t()}),e.pipe(a)),a.pipe(r)}[$E](e,t){let i=e.mode&4095||this.dmode;this[Ba](e.absolute,i,r=>{if(r){this[dn](r,e),t();return}let o=1,s=a=>{--o===0&&(t(),this[_d](),e.resume())};e.mtime&&!this.noMtime&&(o++,ft.utimes(e.absolute,e.atime||new Date,e.mtime,s)),this[Uf](e)&&(o++,ft.chown(e.absolute,this[$f](e),this[Xf](e),s)),s()})}[YX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[Qx](e,e.linkpath,"symlink",t)}[WX](e,t){let i=rr(Ms.resolve(this.cwd,e.linkpath));this[Qx](e,i,"link",t)}[JX](){this[Gx]++}[_d](){this[Gx]--,this[YE]()}[XE](e){this[_d](),e.resume()}[JE](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!zf}[ZE](e){this[JX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[BX](e,i))}[Kx](e){e.type==="SymbolicLink"?eme(this.dirCache):e.type!=="Directory"&&Vfe(this.dirCache,e.absolute)}[BX](e,t){this[Kx](e);let i=a=>{this[Kx](e),t(a)},r=()=>{this[Ba](this.cwd,this.dmode,a=>{if(a){this[dn](a,e),i();return}this[Gf]=!0,o()})},o=()=>{if(e.absolute!==this.cwd){let a=rr(Ms.dirname(e.absolute));if(a!==this.cwd)return this[Ba](a,this.dmode,l=>{if(l){this[dn](l,e),i();return}s()})}s()},s=()=>{ft.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[XE](e),i();return}if(a||this[JE](e,l))return this[Fr](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let u=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,c=d=>this[Fr](d,e,i);return u?ft.chmod(e.absolute,e.mode,c):c()}if(e.absolute!==this.cwd)return ft.rmdir(e.absolute,u=>this[Fr](u,e,i))}if(e.absolute===this.cwd)return this[Fr](null,e,i);Kfe(e.absolute,u=>this[Fr](u,e,i))})};this[Gf]?o():r()}[Fr](e,t,i){if(e){this[dn](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[UE](t,i);case"Link":return this[WX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[$E](t,i)}}[Qx](e,t,i,r){ft[i](t,e.absolute,o=>{o?this[dn](o,e):(this[_d](),e.resume()),r()})}},zx=n=>{try{return[null,n()]}catch(e){return[e,null]}},GE=class extends Kf{[Fr](e,t){return super[Fr](e,t,()=>{})}[ZE](e){if(this[Kx](e),!this[Gf]){let o=this[Ba](this.cwd,this.dmode);if(o)return this[dn](o,e);this[Gf]=!0}if(e.absolute!==this.cwd){let o=rr(Ms.dirname(e.absolute));if(o!==this.cwd){let s=this[Ba](o,this.dmode);if(s)return this[dn](s,e)}}let[t,i]=zx(()=>ft.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[XE](e);if(t||this[JE](e,i))return this[Fr](null,e);if(i.isDirectory()){if(e.type==="Directory"){let s=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=s?zx(()=>{ft.chmodSync(e.absolute,e.mode)}):[];return this[Fr](a,e)}let[o]=zx(()=>ft.rmdirSync(e.absolute));this[Fr](o,e)}let[r]=e.absolute===this.cwd?[]:zx(()=>Qfe(e.absolute));this[Fr](r,e)}[UE](e,t){let i=e.mode&4095||this.fmode,r=a=>{let l;try{ft.closeSync(o)}catch(u){l=u}(a||l)&&this[dn](a||l,e),t()},o;try{o=ft.openSync(e.absolute,zX(e.size),i)}catch(a){return r(a)}let s=this.transform&&this.transform(e)||e;s!==e&&(s.on("error",a=>this[dn](a,e)),e.pipe(s)),s.on("data",a=>{try{ft.writeSync(o,a,0,a.length)}catch(l){r(l)}}),s.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let u=e.atime||new Date,c=e.mtime;try{ft.futimesSync(o,u,c)}catch(d){try{ft.utimesSync(e.absolute,u,c)}catch{l=d}}}if(this[Uf](e)){let u=this[$f](e),c=this[Xf](e);try{ft.fchownSync(o,u,c)}catch(d){try{ft.chownSync(e.absolute,u,c)}catch{l=l||d}}}r(l)})}[$E](e,t){let i=e.mode&4095||this.dmode,r=this[Ba](e.absolute,i);if(r){this[dn](r,e),t();return}if(e.mtime&&!this.noMtime)try{ft.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[Uf](e))try{ft.chownSync(e.absolute,this[$f](e),this[Xf](e))}catch{}t(),e.resume()}[Ba](e,t){try{return XX.sync(rr(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[Qx](e,t,i,r){try{ft[i+"Sync"](t,e.absolute),r(),e.resume()}catch(o){return this[dn](o,e)}}};Kf.Sync=GE;KX.exports=Kf});var iG=v((Wqe,tG)=>{"use strict";var tme=ad(),Vx=zE(),VX=require("fs"),eG=Dd(),QX=require("path"),KE=fd();tG.exports=(n,e,t)=>{typeof n=="function"?(t=n,e=null,n={}):Array.isArray(n)&&(e=n,n={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=tme(n);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&ime(i,e),i.file&&i.sync?nme(i):i.file?rme(i,t):i.sync?ome(i):sme(i)};var ime=(n,e)=>{let t=new Map(e.map(o=>[KE(o),!0])),i=n.filter,r=(o,s)=>{let a=s||QX.parse(o).root||".",l=o===a?!1:t.has(o)?t.get(o):r(QX.dirname(o),a);return t.set(o,l),l};n.filter=i?(o,s)=>i(o,s)&&r(KE(o)):o=>r(KE(o))},nme=n=>{let e=new Vx.Sync(n),t=n.file,i=VX.statSync(t),r=n.maxReadSize||16*1024*1024;new eG.ReadStreamSync(t,{readSize:r,size:i.size}).pipe(e)},rme=(n,e)=>{let t=new Vx(n),i=n.maxReadSize||16*1024*1024,r=n.file,o=new Promise((s,a)=>{t.on("error",a),t.on("close",s),VX.stat(r,(l,u)=>{if(l)a(l);else{let c=new eG.ReadStream(r,{readSize:i,size:u.size});c.on("error",a),c.pipe(t)}})});return e?o.then(e,e):o},ome=n=>new Vx.Sync(n),sme=n=>new Vx(n)});var nG=v(Ri=>{"use strict";Ri.c=Ri.create=N$();Ri.r=Ri.replace=LE();Ri.t=Ri.list=qx();Ri.u=Ri.update=$$();Ri.x=Ri.extract=iG();Ri.Pack=kx();Ri.Unpack=zE();Ri.Parse=Bx();Ri.ReadEntry=ux();Ri.WriteEntry=aE();Ri.Header=pd();Ri.Pax=dx();Ri.types=Y_()});var aG=v((Zqe,sG)=>{sG.exports=hn;function hn(n){if(!(this instanceof hn))return new hn(n);this.value=n}hn.prototype.get=function(n){for(var e=this.value,t=0;t{var ame=aG(),lme=require("events").EventEmitter;lG.exports=Ed;function Ed(n){var e=Ed.saw(n,{}),t=n.call(e.handlers,e);return t!==void 0&&(e.handlers=t),e.record(),e.chain()}Ed.light=function(e){var t=Ed.saw(e,{}),i=e.call(t.handlers,t);return i!==void 0&&(t.handlers=i),t.chain()};Ed.saw=function(n,e){var t=new lme;return t.handlers=e,t.actions=[],t.chain=function(){var i=ame(t.handlers).map(function(r){if(this.isRoot)return r;var o=this.path;typeof r=="function"&&this.update(function(){return t.actions.push({path:o,args:[].slice.call(arguments)}),i})});return process.nextTick(function(){t.emit("begin"),t.next()}),i},t.pop=function(){return t.actions.shift()},t.next=function(){var i=t.pop();if(!i)t.emit("end");else if(!i.trap){var r=t.handlers;i.path.forEach(function(o){r=r[o]}),r.apply(t.handlers,i.args)}},t.nest=function(i){var r=[].slice.call(arguments,1),o=!0;if(typeof i=="boolean"){var o=i;i=r.shift()}var s=Ed.saw(n,{}),a=n.call(s.handlers,s);a!==void 0&&(s.handlers=a),typeof t.step<"u"&&s.record(),i.apply(s.chain(),r),o!==!1&&s.on("end",t.next)},t.record=function(){ume(t)},["trap","down","jump"].forEach(function(i){t[i]=function(){throw new Error("To use the trap, down and jump features, please call record() first to start recording actions.")}}),t};function ume(n){n.step=0,n.pop=function(){return n.actions[n.step++]},n.trap=function(e,t){var i=Array.isArray(e)?e:[e];n.actions.push({path:i,step:n.step,cb:t,trap:!0})},n.down=function(e){var t=(Array.isArray(e)?e:[e]).join("/"),i=n.actions.slice(n.step).map(function(o){return o.trap&&o.step<=n.step?!1:o.path.join("/")==t}).indexOf(!0);i>=0?n.step+=i:n.step=n.actions.length;var r=n.actions[n.step-1];r&&r.trap?(n.step=r.step,r.cb()):n.next()},n.jump=function(e){n.step=e,n.next()}}});var dG=v((Uqe,cG)=>{cG.exports=Cn;function Cn(n){if(!(this instanceof Cn))return new Cn(n);this.buffers=n||[],this.length=this.buffers.reduce(function(e,t){return e+t.length},0)}Cn.prototype.push=function(){for(var n=0;n=0?n:this.length-n,r=[].slice.call(arguments,2);e===void 0?e=this.length-i:e>this.length-i&&(e=this.length-i);for(var n=0;n0){var u=i-a;if(u+e0){var g=r.slice();g.unshift(d),g.push(h),t.splice.apply(t,[l,1].concat(g)),l+=g.length,r=[]}else t.splice(l,1,d,h),l+=2}else o.push(t[l].slice(u)),t[l]=t[l].slice(0,u),l++}for(r.length>0&&(t.splice.apply(t,[l,0].concat(r)),l+=r.length);o.lengththis.length&&(e=this.length);for(var i=0,r=0;r=e-n?Math.min(u+(e-n)-s,l):l;t[a].copy(o,s,u,c),s+=c-u}return o};Cn.prototype.pos=function(n){if(n<0||n>=this.length)throw new Error("oob");for(var e=n,t=0,i=null;;){if(i=this.buffers[t],e=this.buffers[t].length;)if(i=0,t++,t>=this.buffers.length)return-1;var l=this.buffers[t][i];if(l==n[r]){if(r==0&&(o={i:t,j:i,pos:s}),r++,r==n.length)return o.pos}else r!=0&&(t=o.i,i=o.j,s=o.pos,r=0);i++,s++}};Cn.prototype.toBuffer=function(){return this.slice()};Cn.prototype.toString=function(n,e,t){return this.slice(e,t).toString(n)}});var gG=v(($qe,hG)=>{hG.exports=function(n){function e(i,r){var o=t.store,s=i.split(".");s.slice(0,-1).forEach(function(l){o[l]===void 0&&(o[l]={}),o=o[l]});var a=s[s.length-1];return arguments.length==1?o[a]:o[a]=r}var t={get:function(i){return e(i)},set:function(i,r){return e(i,r)},store:n||{}};return t}});var vG=v((gu,yG)=>{var cme=uG(),pG=require("events").EventEmitter,dme=dG(),eC=gG(),hme=require("stream").Stream;gu=yG.exports=function(n,e){if(Buffer.isBuffer(n))return gu.parse(n);var t=gu.stream();return n&&n.pipe?n.pipe(t):n&&(n.on(e||"data",function(i){t.write(i)}),n.on("end",function(){t.end()})),t};gu.stream=function(n){if(n)return gu.apply(null,arguments);var e=null;function t(d,h,g){e={bytes:d,skip:g,cb:function(f){e=null,h(f)}},r()}var i=null;function r(){if(!e){c&&(u=!0);return}if(typeof e=="function")e();else{var d=i+e.bytes;if(a.length>=d){var h;i==null?(h=a.splice(0,d),e.skip||(h=h.slice())):(e.skip||(h=a.slice(i,d)),i=d),e.skip?e.cb():e.cb(h)}}}function o(d){function h(){u||d.next()}var g=bG(function(f,m){return function(y){t(f,function(w){l.set(y,m(w)),h()})}});return g.tap=function(f){d.nest(f,l.store)},g.into=function(f,m){l.get(f)||l.set(f,{});var y=l;l=eC(y.get(f)),d.nest(function(){m.apply(this,arguments),this.tap(function(){l=y})},l.store)},g.flush=function(){l.store={},h()},g.loop=function(f){var m=!1;d.nest(!1,function y(){this.vars=l.store,f.call(this,function(){m=!0,h()},l.store),this.tap(function(){m?d.next():y.call(this)}.bind(this))},l.store)},g.buffer=function(f,m){typeof m=="string"&&(m=l.get(m)),t(m,function(y){l.set(f,y),h()})},g.skip=function(f){typeof f=="string"&&(f=l.get(f)),t(f,function(){h()})},g.scan=function(m,y){if(typeof y=="string")y=new Buffer(y);else if(!Buffer.isBuffer(y))throw new Error("search must be a Buffer or a string");var w=0;e=function(){var x=a.indexOf(y,i+w),C=x-i-w;x!==-1?(e=null,i!=null?(l.set(m,a.slice(i,i+w+C)),i+=w+C+y.length):(l.set(m,a.slice(0,w+C)),a.splice(0,w+C+y.length)),h(),r()):C=Math.max(a.length-y.length-i-w,0),w+=C},r()},g.peek=function(f){i=0,d.nest(function(){f.call(this,l.store),this.tap(function(){i=null})})},g}var s=cme.light(o);s.writable=!0;var a=dme();s.write=function(d){a.push(d),r()};var l=eC(),u=!1,c=!1;return s.end=function(){c=!0},s.pipe=hme.prototype.pipe,Object.getOwnPropertyNames(pG.prototype).forEach(function(d){s[d]=pG.prototype[d]}),s};gu.parse=function(e){var t=bG(function(o,s){return function(a){if(i+o<=e.length){var l=e.slice(i,i+o);i+=o,r.set(a,s(l))}else r.set(a,null);return t}}),i=0,r=eC();return t.vars=r.store,t.tap=function(o){return o.call(t,r.store),t},t.into=function(o,s){r.get(o)||r.set(o,{});var a=r;return r=eC(a.get(o)),s.call(t,r.store),r=a,t},t.loop=function(o){for(var s=!1,a=function(){s=!0};s===!1;)o.call(t,a,r.store);return t},t.buffer=function(o,s){typeof s=="string"&&(s=r.get(s));var a=e.slice(i,Math.min(e.length,i+s));return i+=s,r.set(o,a),t},t.skip=function(o){return typeof o=="string"&&(o=r.get(o)),i+=o,t},t.scan=function(o,s){if(typeof s=="string")s=new Buffer(s);else if(!Buffer.isBuffer(s))throw new Error("search must be a Buffer or a string");r.set(o,null);for(var a=0;a+i<=e.length-s.length+1;a++){for(var l=0;l=e.length},t};function fG(n){for(var e=0,t=0;t{var wG=require("stream").Transform,fme=require("util");function pu(n,e){if(!(this instanceof pu))return new pu;wG.call(this);var t=typeof n=="object"?n.pattern:n;this.pattern=Buffer.isBuffer(t)?t:Buffer.from(t),this.requiredLength=this.pattern.length,n.requiredExtraSize&&(this.requiredLength+=n.requiredExtraSize),this.data=new Buffer(""),this.bytesSoFar=0,this.matchFn=e}fme.inherits(pu,wG);pu.prototype.checkDataChunk=function(n){var e=this.data.length>=this.requiredLength;if(!!e){var t=this.data.indexOf(this.pattern,n?1:0);if(t>=0&&t+this.requiredLength>this.data.length){if(t>0){var i=this.data.slice(0,t);this.push(i),this.bytesSoFar+=t,this.data=this.data.slice(t)}return}if(t===-1){var r=this.data.length-this.requiredLength+1,i=this.data.slice(0,r);this.push(i),this.bytesSoFar+=r,this.data=this.data.slice(r);return}if(t>0){var i=this.data.slice(0,t);this.data=this.data.slice(t),this.push(i),this.bytesSoFar+=t}var o=this.matchFn?this.matchFn(this.data,this.bytesSoFar):!0;if(o){this.data=new Buffer("");return}return!0}};pu.prototype._transform=function(n,e,t){this.data=Buffer.concat([this.data,n]);for(var i=!0;this.checkDataChunk(!i);)i=!1;t()};pu.prototype._flush=function(n){if(this.data.length>0)for(var e=!0;this.checkDataChunk(!e);)e=!1;this.data.length>0&&(this.push(this.data),this.data=null),n()};xG.exports=pu});var DG=v((Gqe,SG)=>{"use strict";var QE=require("stream"),mme=require("util").inherits;function Qf(){if(!(this instanceof Qf))return new Qf;QE.PassThrough.call(this),this.path=null,this.type=null,this.isDirectory=!1}mme(Qf,QE.PassThrough);Qf.prototype.autodrain=function(){return this.pipe(new QE.Transform({transform:function(n,e,t){t()}}))};SG.exports=Qf});var e1=v((zqe,kG)=>{"use strict";var qa=vG(),VE=require("stream"),bme=require("util"),yme=require("zlib"),vme=CG(),TG=DG(),Ne={STREAM_START:0,START:1,LOCAL_FILE_HEADER:2,LOCAL_FILE_HEADER_SUFFIX:3,FILE_DATA:4,FILE_DATA_END:5,DATA_DESCRIPTOR:6,CENTRAL_DIRECTORY_FILE_HEADER:7,CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX:8,CDIR64_END:9,CDIR64_END_DATA_SECTOR:10,CDIR64_LOCATOR:11,CENTRAL_DIRECTORY_END:12,CENTRAL_DIRECTORY_END_COMMENT:13,TRAILING_JUNK:14,ERROR:99},Vf=4294967296,wme=67324752,xme=134695760,Cme=33639248,Sme=101075792,Dme=117853008,Tme=101010256;function Vi(n){if(!(this instanceof Vi))return new Vi(n);VE.Transform.call(this),this.options=n||{},this.data=new Buffer(""),this.state=Ne.STREAM_START,this.skippedBytes=0,this.parsedEntity=null,this.outStreamInfo={}}bme.inherits(Vi,VE.Transform);Vi.prototype.processDataChunk=function(n){var e;switch(this.state){case Ne.STREAM_START:case Ne.START:e=4;break;case Ne.LOCAL_FILE_HEADER:e=26;break;case Ne.LOCAL_FILE_HEADER_SUFFIX:e=this.parsedEntity.fileNameLength+this.parsedEntity.extraFieldLength;break;case Ne.DATA_DESCRIPTOR:e=12;break;case Ne.CENTRAL_DIRECTORY_FILE_HEADER:e=42;break;case Ne.CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX:e=this.parsedEntity.fileNameLength+this.parsedEntity.extraFieldLength+this.parsedEntity.fileCommentLength;break;case Ne.CDIR64_END:e=52;break;case Ne.CDIR64_END_DATA_SECTOR:e=this.parsedEntity.centralDirectoryRecordSize-44;break;case Ne.CDIR64_LOCATOR:e=16;break;case Ne.CENTRAL_DIRECTORY_END:e=18;break;case Ne.CENTRAL_DIRECTORY_END_COMMENT:e=this.parsedEntity.commentLength;break;case Ne.FILE_DATA:return 0;case Ne.FILE_DATA_END:return 0;case Ne.TRAILING_JUNK:return this.options.debug&&console.log("found",n.length,"bytes of TRAILING_JUNK"),n.length;default:return n.length}var t=n.length;if(t>>8,(o&255)===80){s=a;break}return this.skippedBytes+=s,this.options.debug&&console.log("Skipped",this.skippedBytes,"bytes"),s}this.state=Ne.ERROR;var l=r?"Not a valid zip file":"Invalid signature in zip file";if(this.options.debug){var u=n.readUInt32LE(0),c;try{c=n.slice(0,4).toString()}catch{}console.log("Unexpected signature in zip file: 0x"+u.toString(16),'"'+c+'", skipped',this.skippedBytes,"bytes")}return this.emit("error",new Error(l)),n.length}return this.skippedBytes=0,e;case Ne.LOCAL_FILE_HEADER:return this.parsedEntity=this._readFile(n),this.state=Ne.LOCAL_FILE_HEADER_SUFFIX,e;case Ne.LOCAL_FILE_HEADER_SUFFIX:var d=new TG,h=(this.parsedEntity.flags&2048)!==0;d.path=this._decodeString(n.slice(0,this.parsedEntity.fileNameLength),h);var f=n.slice(this.parsedEntity.fileNameLength,this.parsedEntity.fileNameLength+this.parsedEntity.extraFieldLength),m=this._readExtraFields(f);if(m&&m.parsed&&(m.parsed.path&&!h&&(d.path=m.parsed.path),Number.isFinite(m.parsed.uncompressedSize)&&this.parsedEntity.uncompressedSize===Vf-1&&(this.parsedEntity.uncompressedSize=m.parsed.uncompressedSize),Number.isFinite(m.parsed.compressedSize)&&this.parsedEntity.compressedSize===Vf-1&&(this.parsedEntity.compressedSize=m.parsed.compressedSize)),this.parsedEntity.extra=m.parsed||{},this.options.debug){let P=Object.assign({},this.parsedEntity,{path:d.path,flags:"0x"+this.parsedEntity.flags.toString(16),extraFields:m&&m.debug});console.log("decoded LOCAL_FILE_HEADER:",JSON.stringify(P,null,2))}return this._prepareOutStream(this.parsedEntity,d),this.emit("entry",d),this.state=Ne.FILE_DATA,e;case Ne.CENTRAL_DIRECTORY_FILE_HEADER:return this.parsedEntity=this._readCentralDirectoryEntry(n),this.state=Ne.CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX,e;case Ne.CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX:var h=(this.parsedEntity.flags&2048)!==0,g=this._decodeString(n.slice(0,this.parsedEntity.fileNameLength),h),f=n.slice(this.parsedEntity.fileNameLength,this.parsedEntity.fileNameLength+this.parsedEntity.extraFieldLength),m=this._readExtraFields(f);m&&m.parsed&&m.parsed.path&&!h&&(g=m.parsed.path),this.parsedEntity.extra=m.parsed;var y=(this.parsedEntity.versionMadeBy&65280)>>8===3,w,x;if(y){w=this.parsedEntity.externalFileAttributes>>>16;var C=w>>>12;x=(C&10)===10}if(this.options.debug){let P=Object.assign({},this.parsedEntity,{path:g,flags:"0x"+this.parsedEntity.flags.toString(16),unixAttrs:w&&"0"+w.toString(8),isSymlink:x,extraFields:m.debug});console.log("decoded CENTRAL_DIRECTORY_FILE_HEADER:",JSON.stringify(P,null,2))}return this.state=Ne.START,e;case Ne.CDIR64_END:return this.parsedEntity=this._readEndOfCentralDirectory64(n),this.options.debug&&console.log("decoded CDIR64_END_RECORD:",this.parsedEntity),this.state=Ne.CDIR64_END_DATA_SECTOR,e;case Ne.CDIR64_END_DATA_SECTOR:return this.state=Ne.START,e;case Ne.CDIR64_LOCATOR:return this.state=Ne.START,e;case Ne.CENTRAL_DIRECTORY_END:return this.parsedEntity=this._readEndOfCentralDirectory(n),this.options.debug&&console.log("decoded CENTRAL_DIRECTORY_END:",this.parsedEntity),this.state=Ne.CENTRAL_DIRECTORY_END_COMMENT,e;case Ne.CENTRAL_DIRECTORY_END_COMMENT:return this.options.debug&&console.log("decoded CENTRAL_DIRECTORY_END_COMMENT:",n.slice(0,e).toString()),this.state=Ne.TRAILING_JUNK,e;case Ne.ERROR:return n.length;default:return console.log("didn't handle state #",this.state,"discarding"),n.length}};Vi.prototype._prepareOutStream=function(n,e){var t=this,i=n.uncompressedSize===0&&/[\/\\]$/.test(e.path);e.path=e.path.replace(/^([/\\]*[.]+[/\\]+)*[/\\]*/,""),e.type=i?"Directory":"File",e.isDirectory=i;var r=!(n.flags&8);r&&(e.size=n.uncompressedSize);var o=n.versionsNeededToExtract<=45;if(this.outStreamInfo={stream:null,limit:r?n.compressedSize:-1,written:0},r)this.outStreamInfo.stream=new VE.PassThrough;else{var s=new Buffer(4);s.writeUInt32LE(xme,0);var a=n.extra.zip64Mode,l=a?20:12,u={pattern:s,requiredExtraSize:l},c=new vme(u,function(m,y){var w=t._readDataDescriptor(m,a),x=w.compressedSize===y;if(!a&&!x&&y>=Vf)for(var C=y-Vf;C>=0&&(x=w.compressedSize===C,!x);)C-=Vf;if(!!x){t.state=Ne.FILE_DATA_END;var P=a?24:16;return t.data.length>0?t.data=Buffer.concat([m.slice(P),t.data]):t.data=m.slice(P),!0}});this.outStreamInfo.stream=c}var d=n.flags&1||n.flags&64;if(d||!o){var h=d?"Encrypted files are not supported!":"Zip version "+Math.floor(n.versionsNeededToExtract/10)+"."+n.versionsNeededToExtract%10+" is not supported";e.skip=!0,setImmediate(()=>{e.emit("error",new Error(h))}),this.outStreamInfo.stream.pipe(new TG().autodrain());return}var g=n.compressionMethod>0;if(g){var f=yme.createInflateRaw();f.on("error",function(m){t.state=Ne.ERROR,t.emit("error",m)}),this.outStreamInfo.stream.pipe(f).pipe(e)}else this.outStreamInfo.stream.pipe(e);this._drainAllEntries&&e.autodrain()};Vi.prototype._readFile=function(n){var e=qa.parse(n).word16lu("versionsNeededToExtract").word16lu("flags").word16lu("compressionMethod").word16lu("lastModifiedTime").word16lu("lastModifiedDate").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").word16lu("fileNameLength").word16lu("extraFieldLength").vars;return e};Vi.prototype._readExtraFields=function(n){var e={},t={parsed:e};this.options.debug&&(t.debug=[]);for(var i=0;i=x+4&&a&1&&(e.mtime=new Date(n.readUInt32LE(i+x)*1e3),x+=4),r.extraSize>=x+4&&a&2&&(e.atime=new Date(n.readUInt32LE(i+x)*1e3),x+=4),r.extraSize>=x+4&&a&4&&(e.ctime=new Date(n.readUInt32LE(i+x)*1e3));break;case 28789:o="Info-ZIP Unicode Path Extra Field";var l=n.readUInt8(i);if(l===1){var x=1,u=n.readUInt32LE(i+x);x+=4;var c=n.slice(i+x);e.path=c.toString()}break;case 13:case 22613:o=r.extraId===13?"PKWARE Unix":"Info-ZIP UNIX (type 1)";var x=0;if(r.extraSize>=8){var d=new Date(n.readUInt32LE(i+x)*1e3);x+=4;var h=new Date(n.readUInt32LE(i+x)*1e3);if(x+=4,e.atime=d,e.mtime=h,r.extraSize>=12){var g=n.readUInt16LE(i+x);x+=2;var f=n.readUInt16LE(i+x);x+=2,e.uid=g,e.gid=f}}break;case 30805:o="Info-ZIP UNIX (type 2)";var x=0;if(r.extraSize>=4){var g=n.readUInt16LE(i+x);x+=2;var f=n.readUInt16LE(i+x);x+=2,e.uid=g,e.gid=f}break;case 30837:o="Info-ZIP New Unix";var x=0,m=n.readUInt8(i);if(x+=1,m===1){var y=n.readUInt8(i+x);x+=1,y<=6&&(e.uid=n.readUIntLE(i+x,y)),x+=y;var w=n.readUInt8(i+x);x+=1,w<=6&&(e.gid=n.readUIntLE(i+x,w))}break;case 30062:o="ASi Unix";var x=0;if(r.extraSize>=14){var C=n.readUInt32LE(i+x);x+=4;var P=n.readUInt16LE(i+x);x+=2;var T=n.readUInt32LE(i+x);x+=4;var g=n.readUInt16LE(i+x);x+=2;var f=n.readUInt16LE(i+x);if(x+=2,e.mode=P,e.uid=g,e.gid=f,r.extraSize>14){var O=i+x,j=i+r.extraSize-14,q=this._decodeString(n.slice(O,j));e.symlink=q}}break}this.options.debug&&t.debug.push({extraId:"0x"+r.extraId.toString(16),description:o,data:n.slice(i,i+r.extraSize).inspect()}),i+=r.extraSize}return t};Vi.prototype._readDataDescriptor=function(n,e){if(e){var t=qa.parse(n).word32lu("dataDescriptorSignature").word32lu("crc32").word64lu("compressedSize").word64lu("uncompressedSize").vars;return t}var t=qa.parse(n).word32lu("dataDescriptorSignature").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").vars;return t};Vi.prototype._readCentralDirectoryEntry=function(n){var e=qa.parse(n).word16lu("versionMadeBy").word16lu("versionsNeededToExtract").word16lu("flags").word16lu("compressionMethod").word16lu("lastModifiedTime").word16lu("lastModifiedDate").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").word16lu("fileNameLength").word16lu("extraFieldLength").word16lu("fileCommentLength").word16lu("diskNumber").word16lu("internalFileAttributes").word32lu("externalFileAttributes").word32lu("offsetToLocalFileHeader").vars;return e};Vi.prototype._readEndOfCentralDirectory64=function(n){var e=qa.parse(n).word64lu("centralDirectoryRecordSize").word16lu("versionMadeBy").word16lu("versionsNeededToExtract").word32lu("diskNumber").word32lu("diskNumberWithCentralDirectoryStart").word64lu("centralDirectoryEntries").word64lu("totalCentralDirectoryEntries").word64lu("sizeOfCentralDirectory").word64lu("offsetToStartOfCentralDirectory").vars;return e};Vi.prototype._readEndOfCentralDirectory=function(n){var e=qa.parse(n).word16lu("diskNumber").word16lu("diskStart").word16lu("centralDirectoryEntries").word16lu("totalCentralDirectoryEntries").word32lu("sizeOfCentralDirectory").word32lu("offsetToStartOfCentralDirectory").word16lu("commentLength").vars;return e};var kme="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ";Vi.prototype._decodeString=function(n,e){if(e)return n.toString("utf8");if(this.options.decodeString)return this.options.decodeString(n);let t="";for(var i=0;i0&&(this.data=this.data.slice(t),this.data.length!==0););if(this.state===Ne.FILE_DATA){if(this.outStreamInfo.limit>=0){var i=this.outStreamInfo.limit-this.outStreamInfo.written,r;i{if(this.state===Ne.FILE_DATA_END)return this.state=Ne.START,o.end(e);e()})}return}e()};Vi.prototype.drainAll=function(){this._drainAllEntries=!0};Vi.prototype._transform=function(n,e,t){var i=this;i.data.length>0?i.data=Buffer.concat([i.data,n]):i.data=n;var r=i.data.length,o=function(){if(i.data.length>0&&i.data.length0){e._parseOrOutput("buffer",function(){if(e.data.length>0)return setImmediate(function(){e._flush(n)});n()});return}if(e.state===Ne.FILE_DATA)return n(new Error("Stream finished in an invalid state, uncompression failed"));setImmediate(n)};kG.exports=Vi});var RG=v((Kqe,PG)=>{var em=require("stream").Transform,Pme=require("util"),Rme=e1();function Wa(n){if(!(this instanceof Wa))return new Wa(n);var e=n||{};em.call(this,{readableObjectMode:!0}),this.opts=n||{},this.unzipStream=new Rme(this.opts);var t=this;this.unzipStream.on("entry",function(i){t.push(i)}),this.unzipStream.on("error",function(i){t.emit("error",i)})}Pme.inherits(Wa,em);Wa.prototype._transform=function(n,e,t){this.unzipStream.write(n,e,t)};Wa.prototype._flush=function(n){var e=this;this.unzipStream.end(function(){process.nextTick(function(){e.emit("close")}),n()})};Wa.prototype.on=function(n,e){return n==="entry"?em.prototype.on.call(this,"data",e):em.prototype.on.call(this,n,e)};Wa.prototype.drainAll=function(){return this.unzipStream.drainAll(),this.pipe(new em({objectMode:!0,transform:function(n,e,t){t()}}))};PG.exports=Wa});var LG=v((Qqe,IG)=>{var tm=require("path"),_G=require("fs"),EG=parseInt("0777",8);IG.exports=Id.mkdirp=Id.mkdirP=Id;function Id(n,e,t,i){typeof e=="function"?(t=e,e={}):(!e||typeof e!="object")&&(e={mode:e});var r=e.mode,o=e.fs||_G;r===void 0&&(r=EG),i||(i=null);var s=t||function(){};n=tm.resolve(n),o.mkdir(n,r,function(a){if(!a)return i=i||n,s(null,i);switch(a.code){case"ENOENT":if(tm.dirname(n)===n)return s(a);Id(tm.dirname(n),e,function(l,u){l?s(l,u):Id(n,e,s,u)});break;default:o.stat(n,function(l,u){l||!u.isDirectory()?s(a,i):s(null,i)});break}})}Id.sync=function n(e,t,i){(!t||typeof t!="object")&&(t={mode:t});var r=t.mode,o=t.fs||_G;r===void 0&&(r=EG),i||(i=null),e=tm.resolve(e);try{o.mkdirSync(e,r),i=i||e}catch(a){switch(a.code){case"ENOENT":i=n(tm.dirname(e),t,i),n(e,t,i);break;default:var s;try{s=o.statSync(e)}catch{throw a}if(!s.isDirectory())throw a;break}}return i}});var OG=v((Vqe,jG)=>{var _me=require("fs"),FG=require("path"),Eme=require("util"),Ime=LG(),MG=require("stream").Transform,Lme=e1();function Ya(n){if(!(this instanceof Ya))return new Ya(n);MG.call(this),this.opts=n||{},this.unzipStream=new Lme(this.opts),this.unfinishedEntries=0,this.afterFlushWait=!1,this.createdDirectories={};var e=this;this.unzipStream.on("entry",this._processEntry.bind(this)),this.unzipStream.on("error",function(t){e.emit("error",t)})}Eme.inherits(Ya,MG);Ya.prototype._transform=function(n,e,t){this.unzipStream.write(n,e,t)};Ya.prototype._flush=function(n){var e=this,t=function(){process.nextTick(function(){e.emit("close")}),n()};this.unzipStream.end(function(){if(e.unfinishedEntries>0)return e.afterFlushWait=!0,e.on("await-finished",t);t()})};Ya.prototype._processEntry=function(n){var e=this,t=FG.join(this.opts.path,n.path),i=n.isDirectory?t:FG.dirname(t);this.unfinishedEntries++;var r=function(){var o=_me.createWriteStream(t);o.on("close",function(){e.unfinishedEntries--,e._notifyAwaiter()}),o.on("error",function(s){e.emit("error",s)}),n.pipe(o)};if(this.createdDirectories[i]||i===".")return r();Ime(i,function(o){if(o)return e.emit("error",o);if(e.createdDirectories[i]=!0,n.isDirectory){e.unfinishedEntries--,e._notifyAwaiter();return}r()})};Ya.prototype._notifyAwaiter=function(){this.afterFlushWait&&this.unfinishedEntries===0&&(this.emit("await-finished"),this.afterFlushWait=!1)};jG.exports=Ya});var AG=v(t1=>{"use strict";t1.Parse=RG();t1.Extract=OG()});function Fme(n){let e=n.etag;if(typeof e=="string"&&(e=e.replace(/^W\//,""),!(!e.startsWith('"')||!e.endsWith('"'))))return e.slice(1,-1)}function Mme(n){let i=u5().parse(n).parameters.filename;if(i)return R.extname(i)}function im(n,e,t){let i=u_(n),{etagAlgorithm:r}=e,{dest:o,onProgress:s,extract:a}=e;if(!o||!R.isAbsolute(o))throw new Error(`Invalid dest path: ${o}`);if(!F.existsSync(o))F.mkdirSync(o,{recursive:!0});else{let d=F.statSync(o);if(d&&!d.isDirectory())throw new Error(`${o} exists, but not directory!`)}let l=l_(i),u=d_(i,e);!u.agent&&e.agent&&(u.agent=e.agent);let c=R.extname(i.pathname);return new Promise((d,h)=>{if(t){let m=t.onCancellationRequested(()=>{m.dispose(),f.destroy(new Error("request aborted"))})}let g,f=l.request(u,m=>{if(m.statusCode>=200&&m.statusCode<300||m.statusCode===1223){let y=m.headers,w=y["content-disposition"],x=Fme(y),C=x&&typeof r=="string";if(!c&&w&&(c=Mme(w)),a===!0)if(c===".zip"||y["content-type"]=="application/zip")a="unzip";else if(c==".tgz")a="untar";else{h(new Error(`Unable to detect extract method for ${i}`));return}let P=Number(y["content-length"]),T=!isNaN(P),O=0;m.on("error",K=>{h(new Error(`Unable to connect ${i}: ${K.message}`))});let j=C?Vb.createHash(r):void 0;m.on("data",K=>{if(O+=K.length,j&&j.update(K),T){let X=(O/P*100).toFixed(1);typeof s=="function"?s(X):i1.info(`Download ${i} progress ${X}%`)}}),m.on("end",()=>{clearTimeout(g),g=void 0,i1.info("Download completed:",i)});let q;if(a==="untar"){let K=nG();q=m.pipe(K.x({strip:e.strip??1,C:o}))}else if(a==="unzip"){let K=AG();q=m.pipe(K.Extract({path:o}))}else o=R.join(o,`${$l()}${c}`),q=m.pipe(F.createWriteStream(o));q.on("finish",()=>{if(j&&j.digest("hex")!==x){h(new Error(`Etag check failed by ${r}, content not match.`));return}i1.info(`Downloaded ${i} => ${o}`),setTimeout(()=>{d(o)},100)}),q.on("error",h)}else h(new Error(`Invalid response from ${i}: ${m.statusCode}`))});f.on("error",m=>{if(u.agent&&m.code=="ECONNRESET")g=setTimeout(()=>{h(m)},a_);else{if(clearTimeout(g),u.agent&&u.agent.proxy){h(new Error(`Request failed using proxy ${u.agent.proxy.host}: ${m.message}`));return}h(m)}}),f.on("timeout",()=>{f.destroy(new Error(`request timeout after ${e.timeout}ms`))}),typeof e.timeout=="number"&&e.timeout&&f.setTimeout(e.timeout),f.end()})}var i1,n1=D(()=>{"use strict";ot();Ce();ce();$w();i1=J("model-download")});function Ome(n=Et.homedir()){let e,t=R.join(n,".npmrc");if(F.existsSync(t))try{let i=F.readFileSync(t,"utf8"),r;for(let o of i.split(/\r?\n/)){if(o.startsWith("#"))continue;let s=o.match(/^(.*?)=(.*)$/);s&&s[1]==="coc.nvim:registry"&&(r=s[2])}r&&(e=new tC.URL(r))}catch(i){BG.debug("Error on parse .npmrc:",i)}return e??new tC.URL("https://registry.npmjs.org")}function Ame(n){let e=R.basename(n);return e==="npm"||e==="npm.CMD"}function Nme(n){let e=R.basename(n);return["yarn","yarn.CMD","yarnpkg","yarnpkg.CMD"].includes(e)}function Hme(n){let e=R.basename(n);return e==="pnpm"||e==="pnpm.CMD"}function NG(n){return!!(F.existsSync(n)&&F.lstatSync(n).isSymbolicLink())}function Bme(n){return Object.keys(n.dependencies??{}).filter(e=>!jme.includes(e))}var HG,tC,BG,jme,iC,qG=D(()=>{"use strict";HG=require("events"),tC=require("url");ot();Ce();n1();$w();at();ce();pe();he();BG=J("extension-installer"),jme=["coc.nvim","esbuild","webpack","@types/node"];iC=class extends HG.EventEmitter{constructor(t,i,r){super();this.root=t;this.npm=i;this.def=r;if(/^https?:/.test(r))this.url=r;else{let o=r.match(/(.+)@([^/]+)$/);o?(this.name=o[1],this.version=o[2]):this.name=r}}get info(){return{name:this.name,version:this.version}}async getInfo(){if(this.url)return await this.getInfoFromUri();let t=Ome();this.log(`Get info from ${t}`);let i=await this.fetch(new tC.URL(this.name,t),{timeout:1e4,buffer:!0}),r=JSON.parse(i.toString());this.version||(this.version=r["dist-tags"].latest);let o=r.versions[this.version];if(!o)throw new Error(`${this.def} doesn't exists in ${t}.`);let s=o.engines&&o.engines.coc;if(!s)throw new Error(`${this.def} is not a valid coc extension, "engines" field with coc property required.`);return{"dist.tarball":o.dist.tarball,"engines.coc":s,version:o.version,name:r.name}}async getInfoFromUri(){let{url:t}=this;if(!t.startsWith("https://github.com"))throw new Error(`"${t}" is not supported, coc.nvim support github.com only`);t=t.replace(/\/$/,"");let i="master";if(t.includes("@")){let a=t.indexOf("@");i=t.substr(a+1),t=t.substring(0,a)}let r=t.replace("github.com","raw.githubusercontent.com")+`/${i}/package.json`;this.log(`Get info from ${r}`);let o=await this.fetch(r,{timeout:1e4}),s=typeof o=="string"?JSON.parse(o):o;return this.name=s.name,{"dist.tarball":`${t}/archive/${i}.tar.gz`,"engines.coc":s.engines?s.engines.coc:null,name:s.name,version:s.version}}log(t,i=!1){this.emit("message",t,i)}async install(){this.log(`Using npm from: ${this.npm}`);let t=await this.getInfo();BG.info(`Fetched info of ${this.def}`,t);let{name:i,version:r}=t,o=se(t["engines.coc"]).replace(/^\^/,">=");if(o&&!ur.satisfies(b.version,o))throw new Error(`${i} ${t.version} requires coc.nvim >= ${o}, please update coc.nvim.`);let s=await this.doInstall(t);return{name:i,updated:s,version:r,url:this.url,folder:R.join(this.root,t.name)}}async update(t){t&&(this.url=t);let i;if(this.name){let l=R.join(this.root,this.name);if(NG(l)){this.log("Skipped update for symbol link");return}i=to(R.join(l,"package.json")).version}this.log(`Using npm from: ${this.npm}`);let r=await this.getInfo();if(i&&r.version&&ur.gte(i,r.version)){this.log(`Current version ${i} is up to date.`);return}let o=r["engines.coc"]?r["engines.coc"].replace(/^\^/,">="):"";if(o&&!ur.satisfies(b.version,o))throw new Error(`${r.version} requires coc.nvim ${o}, please update coc.nvim.`);if(!await this.doInstall(r))return;let a=R.join(this.root,r.name,"package.json");return this.log(`Updated to v${r.version}`),R.dirname(a)}getInstallArguments(t,i){let r=["install","--ignore-scripts","--no-lockfile"];return i&&i.startsWith("https://github.com")&&(r=["install"]),Ame(t)&&(r.push("--omit=dev"),r.push("--legacy-peer-deps"),r.push("--no-global")),Nme(t)&&(r.push("--production"),r.push("--ignore-engines")),Hme(t)&&(r.push("--production"),r.push("--config.strict-peer-dependencies=false")),r}readLines(t,i){yo.createInterface({input:i}).on("line",o=>{this.log(`${t} ${o}`,!0)})}installDependencies(t,i){return i.length==0?Promise.resolve():new Promise((r,o)=>{let s=this.getInstallArguments(this.npm,this.url);this.log(`Installing dependencies by: ${this.npm} ${s.join(" ")}.`);let a=fn.spawn(this.npm,s,{cwd:t,env:Object.assign(process.env,{NODE_ENV:"production"})});this.readLines("[npm stdout]",a.stdout),this.readLines("[npm stderr]",a.stderr),a.stderr.setEncoding("utf8"),a.stdout.setEncoding("utf8"),a.on("error",o),a.on("exit",l=>{if(l){o(new Error(`${this.npm} install exited with ${l}`));return}r()})})}async doInstall(t){let i=R.join(this.root,t.name);if(NG(i))return!1;let r=t.name.replace(/\//g,"_"),o=R.join(this.root,`${r}-${me()}`),s=t["dist.tarball"];this.log(`Downloading from ${s}`);let a=s.startsWith("https://registry.npmjs.org")?"md5":void 0;try{await this.download(s,{dest:o,etagAlgorithm:a,extract:"untar",onProgress:u=>this.log(`Download progress ${u}%`,!0)}),this.log(`Extension download at ${o}`);let l=to(R.join(o,"package.json"));await this.installDependencies(o,Bme(l))}catch(l){throw F.rmSync(o,{recursive:!0,force:!0}),l}return this.log(`Download extension ${t.name}@${t.version} at ${o}`),F.mkdirSync(R.dirname(i),{recursive:!0}),F.existsSync(i)&&F.rmSync(i,{force:!0,recursive:!0}),F.renameSync(o,i),this.log(`Move extension ${t.name}@${t.version} to ${i}`),!0}async download(t,i){return await im(t,i)}async fetch(t,i={}){return await If(t,i)}}});var nm,WG=D(()=>{"use strict";at();ce();Be();nm=class{constructor(e){this.filepath=e;F.existsSync(e)||F.writeFileSync(e,"{}","utf8")}merge(e){if(!F.existsSync(e))return;let t=to(e),i=to(this.filepath);Object.assign(i,t),oa(this.filepath,i),F.unlinkSync(e)}fetchContent(e,t){let r=to(this.filepath)[e];if(!!r)return r[t]}async update(e,t,i){let{filepath:r}=this,o=to(r);o[e]=o[e]||{},i!==void 0?o[e][t]=Fi(i):delete o[e][t],oa(r,o)}createMemento(e){return{get:(t,i)=>{let r=this.fetchContent(e,t);return r===void 0?i:r},update:async(t,i)=>{await this.update(e,t,i)}}}}});var YG,qme,Wme,rm,ZG=D(()=>{"use strict";YG=require("events");Ce();ee();ce();he();qme=fn.spawn,Wme=J("list-commandTask"),rm=class extends YG.EventEmitter{constructor(t){super();this.opt=t;this.disposables=[];this.start()}start(){let{cmd:t,args:i,cwd:r,onLine:o}=this.opt,s=qme(t,i,{cwd:r||b.cwd,windowsHide:!0});this.disposables.push({dispose:()=>{s.kill()}}),s.on("error",l=>{this.emit("error",l.message)}),s.stderr.on("data",l=>{Wme.error(`[${t} Error]`,l.toString("utf8"))});let a=yo.createInterface(s.stdout);a.on("line",l=>{let u=o(l);u&&this.emit("data",u)}),a.on("close",()=>{this.emit("end")})}dispose(){Y(this.disposables)}}});var fu,r1,ut,Za=D(()=>{"use strict";We();he();fu=["","","","","","","","","","","","","","","","","","","","<2-LeftMouse>","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],r1=class{get debounceTime(){return this.get("interactiveDebounceTime",100)}get extendedSearchMode(){return this.get("extendedSearchMode",!0)}get smartcase(){return this.get("smartCase",!1)}get signOffset(){return this.get("signOffset",900)}get(e,t){return b.initialConfiguration.get("list."+e,t)}get previousKey(){return this.fixKey(this.get("previousKeymap",""))}get nextKey(){return this.fixKey(this.get("nextKeymap",""))}fixKey(e){if(fu.includes(e))return e;let t=fu.find(i=>i.toLowerCase()==e.toLowerCase());return t||(k.showErrorMessage(`Configured key "${e}" not supported.`),null)}},ut=new r1});function Yme(n){switch(n){case"latex":return"tex";default:return n}}var pi,qo=D(()=>{"use strict";ae();Je();ee();at();Pt();pe();he();ZG();Za();pi=class{constructor(){this.defaultAction="open";this.actions=[];this.options=[];this.disposables=[];this.nvim=b.nvim,this.config=ut}get alignColumns(){return ut.get("alignColumns",!1)}get floatPreview(){return ut.get("floatPreview",!1)}get hlGroup(){return ut.get("previewHighlightGroup","Search")}get previewHeight(){return ut.get("maxPreviewHeight",12)}get splitRight(){return ut.get("previewSplitRight",!1)}get toplineStyle(){return ut.get("previewToplineStyle","offset")}get toplineOffset(){return ut.get("previewToplineOffset",3)}parseArguments(e){if(!this.optionMap){this.optionMap=new Map;for(let i of this.options){let r=i.name.split(/,\s*/g).map(s=>s.replace(/\s+.*/g,"")),o=i.key?i.key:r[r.length-1].replace(/^-/,"");for(let s of r)this.optionMap.set(s,{name:o,hasValue:i.hasValue})}}let t={};for(let i=0;i{let r=await this.convertLocation(t.location);await this.previewLocation(r,i)}});let{nvim:e}=this;this.createAction({name:"quickfix",multiple:!0,execute:async t=>{let i=await Promise.all(t.map(o=>this.convertLocation(o.location).then(s=>b.getQuickfixItem(s))));await e.call("setqflist",[i]);let r=await e.getVar("coc_quickfix_open_command");e.command(typeof r=="string"?r:"copen",!0)}});for(let t of["open","tabe","drop","vsplit","split"])this.createAction({name:t,execute:async(i,r)=>{await this.jumpTo(i.location,t=="open"?null:t,r)},tabPersist:t==="open"})}async convertLocation(e){if(typeof e=="string")return Ze.create(e,M.create(0,0,0,0));if(Ze.is(e))return e;let t=A.parse(e.uri);return t.scheme!="file"?Ze.create(e.uri,M.create(0,0,0,0)):await qY(t.fsPath,e.line,e.text)}async jumpTo(e,t,i){if(t==null&&i&&i.options.position==="tab"&&(t="tabe"),typeof e=="string"){await b.jumpTo(e,null,t);return}let{range:r,uri:o}=await this.convertLocation(e),s=r.start;s.line==0&&s.character==0&&ze(s,r.end)==0&&(s=null),await b.jumpTo(o,s,t)}createAction(e){let{name:t}=e,i=this.actions.findIndex(r=>r.name==t);i!==-1&&this.actions.splice(i,1),this.actions.push(e)}async previewLocation(e,t){let{uri:i,range:r}=e,o=b.getDocument(e.uri),s=A.parse(i),a=await b.documentsManager.getLines(i),l={bufnr:o?o.bufnr:void 0,winid:t.window.id,range:Kt(r)?null:r,lnum:r.start.line+1,name:s.scheme=="file"?s.fsPath:i,filetype:Yme(o?o.languageId:b.documentsManager.getLanguageId(s.fsPath)),position:t.options.position,maxHeight:this.previewHeight,splitRight:this.splitRight,hlGroup:this.hlGroup,scheme:s.scheme,toplineStyle:this.toplineStyle,toplineOffset:this.toplineOffset,targetRange:e.targetRange};await this.openPreview(a,l)}async preview(e,t){let{bufname:i,filetype:r,range:o,lines:s,lnum:a}=e,l={winid:t.window.id,lnum:o?o.start.line+1:a||1,filetype:r,position:t.options.position,maxHeight:this.previewHeight,splitRight:this.splitRight,hlGroup:this.hlGroup,toplineStyle:this.toplineStyle,toplineOffset:this.toplineOffset};i&&(l.name=i),o&&(l.range=o),await this.openPreview(s,l)}async openPreview(e,t){let{nvim:i}=this;this.floatPreview&&t.position!=="tab"?await i.call("coc#list#float_preview",[e,t]):await i.call("coc#list#preview",[e,t]),i.command("redraw",!0)}doHighlight(){}dispose(){Y(this.disposables)}}});function Ld(n){let e=n.length,t=new Uint16Array(e);for(let i=0,r=e;i=97&&n<=122&&e+32===n||t&&(n<=90&&n+32===e||o1(n)===e))return!0}else{let i=o1(e);if(i===n||t&&o1(n)===i)return!0}return!1}function o1(n){return String.fromCharCode(n).toLowerCase().charCodeAt(0)}function Fd(n,e,t=!1){let i=n.length,r=e.length;if(i>r)return!1;let o=0,s=n[0];for(let a=0;a{"use strict";Jt()});var Zme,a1,om,l1,u1=D(()=>{"use strict";ce();Ce();pe();Jt();Zme=J("list-db"),a1=R.join(Kn,"list_history.dat"),om=class{constructor(){this.folders=[];this.names=[];this.items=[];this._changed=!1;try{this.load()}catch(e){Zme.error("Error on load db",e)}}get currItems(){return this.items}getHistory(e,t){let i=this.names.indexOf(e),r=this.folders.indexOf(t);return i==-1||r==-1?[]:this.items.reduce((o,s)=>(s[1]==i&&s[2]==r&&o.push(s[0]),o),[])}addItem(e,t,i){let{folders:r,names:o}=this;de(t)>255&&(t=zt(t,0,255)),r.includes(i)||r.push(i),o.includes(e)||o.push(e);let s=o.indexOf(e),a=r.indexOf(i),l=this.items.findIndex(u=>u[0]==t&&u[1]==s&&u[2]==a);l!=-1&&this.items.splice(l,1),this.items.push([t,s,a]),this._changed=!0}save(){let{folders:e,items:t,names:i}=this;if(!this._changed)return;let r=e.reduce((u,c)=>(u.push(Buffer.from(c,"utf8"),Buffer.alloc(1)),u),[]),o=Buffer.concat(r);r=i.reduce((u,c)=>(u.push(Buffer.from(c,"utf8"),Buffer.alloc(1)),u),[]);let s=Buffer.concat(r),a=Buffer.allocUnsafe(9);a.writeUInt8(2,0),a.writeUInt32BE(o.byteLength,1),a.writeUInt32BE(s.byteLength,5),r=t.reduce((u,c)=>{let d=Buffer.from(c[0],"utf8");return u.push(Buffer.from([d.byteLength]),d,Buffer.from([c[1],c[2]])),u},[]);let l=Buffer.concat([a,o,s,...r]);F.writeFileSync(a1,l),this._changed=!1}load(){if(!F.existsSync(a1))return;let e=F.readFileSync(a1),t=e.readUInt32BE(1),i=e.readUInt32BE(5),r=e.slice(9,9+t),o=0,s=[],a=[];for(let h=0;h{"use strict";ce();Ce();Se();nC();u1();pe();Jme=J("list-history"),mu=class{constructor(e,t,i,r){this.prompt=e;this.name=t;this.db=i;this.cwd=r;this._index=-1;this._filtered=[]}get loaded(){return this.db.getHistory(this.name,this.cwd)}get filtered(){return this._filtered}get index(){return this._index}static migrate(e){try{let t=F.readdirSync(e);if(t=t.filter(r=>r.startsWith("list-")&&r.endsWith("-history.json")&&F.statSync(R.join(e,r)).isFile()),t.length===0)return;let i=new om;for(let r of t){let o=r.match(/^list-(.*)-history.json$/)[1],s=F.readFileSync(R.join(e,r),"utf8"),a=JSON.parse(s);for(let[l,u]of Object.entries(a)){let c=Buffer.from(l,"base64").toString("utf8");Array.isArray(u)&&u.forEach(d=>{i.addItem(o,d,c)})}}t.forEach(r=>{F.unlinkSync(R.join(e,r))}),i.save()}catch(t){Jme.error("Error on migrate history:",t)}}get curr(){return this._index==-1||this._filtered==null?null:this._filtered[this._index]}filter(){let{input:e}=this.prompt;if(e!==this.curr){if(this.historyInput="",e.length>0){let t=Ld(e);this._filtered=this.loaded.filter(i=>Fd(t,i))}else this._filtered=this.loaded;this._index=-1}}add(){let{db:e,prompt:t,cwd:i}=this,{input:r}=t;!r||r.length<2||r==this.historyInput||e.addItem(this.name,r,i)}previous(){let{_filtered:e,_index:t}=this;te(e)||(t<=0?this._index=e.length-1:this._index=t-1,this.historyInput=this.prompt.input=se(e[this._index]))}next(){let{_filtered:e,_index:t}=this;te(e)||(t==e.length-1?this._index=0:this._index=t+1,this.historyInput=this.prompt.input=se(e[this._index]))}}});var sm,JG=D(()=>{"use strict";We();Za();sm=class{constructor(e,t){this.manager=e;this.nvim=t;this.insertMappings=new Map;this.normalMappings=new Map;this.userInsertMappings=new Map;this.userNormalMappings=new Map;this.actions=new Map;let{prompt:i}=e;this.addAction("do:switch",async()=>{await e.switchMatcher()}),this.addAction("do:selectall",async()=>{var r;await((r=e.session)==null?void 0:r.ui.selectAll())}),this.addAction("do:help",async()=>{var r;await((r=e.session)==null?void 0:r.showHelp())}),this.addAction("do:refresh",async()=>{var r;await((r=e.session)==null?void 0:r.reloadItems())}),this.addAction("do:exit",async()=>{await e.cancel()}),this.addAction("do:stop",()=>{e.stop()}),this.addAction("do:cancel",async()=>{await e.cancel(!1)}),this.addAction("do:toggle",async()=>{var r;await((r=e.session)==null?void 0:r.ui.toggleSelection())}),this.addAction("do:jumpback",()=>{var r;(r=e.session)==null||r.jumpBack()}),this.addAction("do:previous",async()=>{await this.navigate(!0)}),this.addAction("do:next",async()=>{await this.navigate(!1)}),this.addAction("do:defaultaction",async()=>{await e.doAction()}),this.addAction("do:chooseaction",async()=>{await e.chooseAction()}),this.addAction("do:togglemode",()=>{e.toggleMode()}),this.addAction("do:previewtoggle",async()=>{await e.togglePreview()}),this.addAction("do:previewup",()=>{this.scrollPreview("up")}),this.addAction("do:previewdown",()=>{this.scrollPreview("down")}),this.addAction("do:command",async()=>{await e.cancel(!1),await t.eval('feedkeys(":")')}),this.addAction("prompt:previous",()=>{var r;(r=e.session)==null||r.history.previous()}),this.addAction("prompt:next",()=>{var r;(r=e.session)==null||r.history.next()}),this.addAction("prompt:start",()=>{i.moveToStart()}),this.addAction("prompt:end",()=>{i.moveToEnd()}),this.addAction("prompt:left",()=>{i.moveLeft()}),this.addAction("prompt:right",()=>{i.moveRight()}),this.addAction("prompt:deleteforward",()=>{i.onBackspace()}),this.addAction("prompt:deletebackward",()=>{i.removeNext()}),this.addAction("prompt:removetail",()=>{i.removeTail()}),this.addAction("prompt:removeahead",()=>{i.removeAhead()}),this.addAction("prompt:removeword",()=>{i.removeWord()}),this.addAction("prompt:insertregister",()=>{i.insertRegister()}),this.addAction("prompt:paste",async()=>{await i.paste()}),this.addAction("eval",async r=>{await i.eval(r)}),this.addAction("command",async r=>{await e.command(r)}),this.addAction("action",async r=>{await e.doAction(r)}),this.addAction("feedkeys",async r=>{await e.feedkeys(r)}),this.addAction("feedkeys!",async r=>{await e.feedkeys(r,!1)}),this.addAction("normal",async r=>{await e.normal(r,!1)}),this.addAction("normal!",async r=>{await e.normal(r,!0)}),this.addAction("call",async r=>{await e.call(r)}),this.addAction("expr",async r=>{let o=await e.call(r);o&&await e.doAction(o)}),this.addKeyMapping("insert","","do:switch"),this.addKeyMapping("insert","","prompt:next"),this.addKeyMapping("insert","","prompt:previous"),this.addKeyMapping("insert","","prompt:paste"),this.addKeyMapping("insert",["",""],"do:defaultaction"),this.addKeyMapping("insert",["",""," "],"do:chooseaction"),this.addKeyMapping("insert","","do:togglemode"),this.addKeyMapping("insert","","do:stop"),this.addKeyMapping("insert","","do:refresh"),this.addKeyMapping("insert","","prompt:left"),this.addKeyMapping("insert","","prompt:right"),this.addKeyMapping("insert",["",""],"prompt:end"),this.addKeyMapping("insert",["",""],"prompt:start"),this.addKeyMapping("insert",["","",""],"prompt:deleteforward"),this.addKeyMapping("insert","","prompt:removeword"),this.addKeyMapping("insert","","prompt:removeahead"),this.addKeyMapping("insert","","prompt:insertregister"),this.addKeyMapping("normal","t","action:tabe"),this.addKeyMapping("normal","s","action:split"),this.addKeyMapping("normal","d","action:drop"),this.addKeyMapping("normal",["","","\r"],"do:defaultaction"),this.addKeyMapping("normal","","do:selectall"),this.addKeyMapping("normal"," ","do:toggle"),this.addKeyMapping("normal","p","do:previewtoggle"),this.addKeyMapping("normal",[""," ",""],"do:chooseaction"),this.addKeyMapping("normal","","do:stop"),this.addKeyMapping("normal","","do:refresh"),this.addKeyMapping("normal","","do:jumpback"),this.addKeyMapping("normal","","do:previewdown"),this.addKeyMapping("normal","","do:previewup"),this.addKeyMapping("normal",["i","I","o","O","a","A"],"do:togglemode"),this.addKeyMapping("normal","?","do:help"),this.addKeyMapping("normal",":","do:command"),this.createMappings()}createMappings(){let e=ut.get("insertMappings",{});this.userInsertMappings=this.fixUserMappings(e,"list.insertMappings");let t=ut.get("normalMappings",{});this.userNormalMappings=this.fixUserMappings(t,"list.normalMappings")}hasUserMapping(e,t){return(e=="insert"?this.userInsertMappings:this.userNormalMappings).has(t)}isValidAction(e){if(this.actions.has(e))return!0;let[t,i]=e.split(":",2);return!(!i||!this.actions.has(t))}fixUserMappings(e,t){let i=new Map;for(let[r,o]of Object.entries(e)){if(!this.isValidAction(o)){k.showWarningMessage(`Invalid configuration - unable to support action "${o}" in "${t}"`);continue}if(r.length==1)i.set(r,o);else if(r.startsWith("<")&&r.endsWith(">"))if(r.toLowerCase()=="")i.set(" ",o);else if(r.toLowerCase()=="")i.set("",o);else if(fu.includes(r))i.set(r,o);else{let s=!1;for(let a=0;athis.doAction(e);let[t,i]=e.split(":",2);if(!i||!this.actions.has(t))throw new Error(`Invalid action ${e}`);return()=>this.doAction(t,i)}async doAction(e,t){let i=this.actions.get(e);if(!i)throw new Error(`Action ${e} doesn't exist`);await Promise.resolve(i(t))}scrollPreview(e){let{nvim:t}=this;t.pauseNotification(),t.call("coc#list#scroll_preview",[e],!0),t.command("redraw",!0),t.resumeNotification(!1,!0)}}});var am,UG=D(()=>{"use strict";$();Za();am=class{constructor(e){this.nvim=e;this.cusorIndex=0;this._input="";this._mode="insert";this.interactive=!1;this.requestInput=!1;this._onDidChangeInput=new p.Emitter;this.onDidChangeInput=this._onDidChangeInput.event}get input(){return this._input}set input(e){this._input!=e&&(this.cusorIndex=e.length,this._input=e,this.drawPrompt(),this._onDidChangeInput.fire(this._input))}get mode(){return this._mode}set mode(e){e!=this._mode&&(this._mode=e,this.drawPrompt())}set matcher(e){this._matcher=e,this.drawPrompt()}start(e){e&&(this.interactive=e.interactive,this.cusorIndex=e.input.length,this._input=e.input,this._mode=e.mode,this._matcher=e.interactive?"":e.matcher),this.nvim.call("coc#prompt#start_prompt",["list"],!0),this.drawPrompt()}cancel(){let{nvim:e}=this;e.call("coc#prompt#stop_prompt",["list"],!0)}reset(){this._input="",this.cusorIndex=0}drawPrompt(){let e=ut.get("indicator",">"),{cusorIndex:t,interactive:i,input:r,_matcher:o}=this,s=['echo ""'];if(this.mode=="insert")if(i?s.push("echohl MoreMsg | echon 'INTERACTIVE ' | echohl None"):o&&s.push(`echohl MoreMsg | echon '${o.toUpperCase()} ' | echohl None`),s.push(`echohl Special | echon '${e} ' | echohl None`),t==r.length)s.push(`echon '${r.replace(/'/g,"''")}'`),s.push("echohl Cursor | echon ' ' | echohl None");else{let l=r.slice(0,t);l&&s.push(`echon '${l.replace(/'/g,"''")}'`),s.push(`echohl Cursor | echon '${r[t].replace(/'/,"''")}' | echohl None`);let u=r.slice(t+1);s.push(`echon '${u.replace(/'/g,"''")}'`)}else s.push('echohl MoreMsg | echo "" | echohl None');s.push("redraw");let a=s.join("|");this.nvim.command(a,!0)}moveLeft(){this.cusorIndex!=0&&(this.cusorIndex=this.cusorIndex-1,this.drawPrompt())}moveRight(){this.cusorIndex!=this._input.length&&(this.cusorIndex=this.cusorIndex+1,this.drawPrompt())}moveToEnd(){this.cusorIndex!=this._input.length&&(this.cusorIndex=this._input.length,this.drawPrompt())}moveToStart(){this.cusorIndex!=0&&(this.cusorIndex=0,this.drawPrompt())}onBackspace(){let{cusorIndex:e,input:t}=this;if(e==0)return;let i=t.slice(0,e),r=t.slice(e);this.cusorIndex=e-1,this._input=`${i.slice(0,i.length-1)}${r}`,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}removeNext(){let{cusorIndex:e,input:t}=this;if(e==t.length)return;let i=t.slice(0,e),r=t.slice(e+1);this._input=`${i}${r}`,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}removeWord(){let{cusorIndex:e,input:t}=this;if(e==0)return;let i=t.slice(0,e),r=t.slice(e),o=i.replace(/[\w$]+([^\w$]+)?$/,"");this.cusorIndex=e-(i.length-o.length),this._input=`${o}${r}`,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}removeTail(){let{cusorIndex:e,input:t}=this;if(e==t.length)return;let i=t.slice(0,e);this._input=i,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}removeAhead(){let{cusorIndex:e,input:t}=this;if(e==0)return;let i=t.slice(e);this.cusorIndex=0,this._input=i,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}async acceptCharacter(e){if(this.requestInput){if(this.requestInput=!1,/^[0-9a-z"%#*+/:\-.]$/.test(e)){let t=await this.nvim.call("getreg",e);t=t.replace(/\n/g," "),this.addText(t)}}else this.addText(e)}insertRegister(){this.requestInput=!0}async paste(){let e=await this.nvim.eval("@*");e=e.replace(/\n/g,""),e&&this.addText(e)}async eval(e){let t=await this.nvim.call("eval",[e]);t=t.replace(/\n/g,""),this.addText(t)}addText(e){let{cusorIndex:t,input:i}=this;this.cusorIndex=t+e.length;let r=i.slice(0,t),o=i.slice(t);this._input=`${r}${e}${o}`,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}}});var rC,$G=D(()=>{"use strict";rC=class{constructor(){this._busy=!1;this._fns=[];this._resolves=[]}run(e){this._busy?this._fns.push(e):(this._busy=!0,e().finally(()=>{this.next()}))}waitFinish(){return this._busy?new Promise(e=>{this._resolves.push(e)}):Promise.resolve()}next(){let e=this._fns.shift();e?e().finally(()=>{this.next()}):this.finish()}finish(){this._busy=!1;let e;for(;(e=this._resolves.pop())!=null;)e()}cancel(){this._fns=[],this.finish()}}});var Ume,lm,XG=D(()=>{"use strict";Re();ee();Se();ce();$();$G();pe();he();Za();Ume=ge(100,20),lm=class{constructor(e,t,i){this.nvim=e;this.name=t;this.listOptions=i;this.newTab=!1;this.reversed=!1;this.currIndex=0;this.items=[];this.disposables=[];this.selected=new Set;this.sequence=new rC;this._onDidChangeLine=new p.Emitter;this._onDidOpen=new p.Emitter;this._onDidClose=new p.Emitter;this._onDidLineChange=new p.Emitter;this._onDoubleClick=new p.Emitter;this.onDidChangeLine=this._onDidChangeLine.event;this.onDidLineChange=this._onDidLineChange.event;this.onDidOpen=this._onDidOpen.event;this.onDidClose=this._onDidClose.event;this.onDidDoubleClick=this._onDoubleClick.event;this.newTab=i.position=="tab",this.reversed=i.reverse===!0,_.on("BufWinLeave",async o=>{o!=this.bufnr||this.window==null||(this.window=null,this._onDidClose.fire(o))},null,this.disposables),_.on("CursorMoved",async(o,s)=>{if(o!=this.bufnr)return;let a=this.lnumToIndex(s[0]);this.onLineChange(a)},null,this.disposables);let r=mt(async o=>{if(o!=this.bufnr)return;let[s,a,l]=await e.eval('[win_getid(),line("w0"),line("w$")]');if(l<300||s!=this.winid)return;let u=l-a+1,c=this.lnumToIndex(a),d=this.lnumToIndex(a+u*2);e.pauseNotification(),this.doHighlight(c,d),e.command("redraw",!0),e.resumeNotification(!1,!0)},Ume);this.disposables.push({dispose:()=>{r.clear()}}),_.on("CursorMoved",r,null,this.disposables)}onDidChangeItems(e){e.append||this.clearSelection(),this.sequence.run(async()=>{let{items:t,reload:i,append:r,finished:o,sorted:s}=e;this.shouldSort&&!s&&(t=r?this.items.concat(t):t,i=r==!0,r=!1,t.sort((a,l)=>a.score!=l.score?l.score-a.score:a.sortText>l.sortText?1:-1)),r?await this.appendItems(t):await this.drawItems(t,o,i)})}lnumToIndex(e){let{reversed:t,length:i}=this;return t?Math.max(0,i-e):e-1}indexToLnum(e){let{reversed:t,length:i}=this;return t?Math.max(Math.min(i,i-e),1):Math.min(e+1,i)}get bufnr(){var e;return(e=this.buffer)==null?void 0:e.id}get winid(){var e;return(e=this.window)==null?void 0:e.id}get limitLines(){return ut.get("limitLines",1/0)}onLineChange(e){this.currIndex!=e&&(this.currIndex=e,this._onDidChangeLine.fire(e))}get index(){return this.currIndex}getItem(e){return this.items[e]}get item(){let{window:e}=this;return e?e.cursor.then(t=>(this.currIndex=this.lnumToIndex(t[0]),this.items[this.currIndex])):Promise.resolve(null)}async echoMessage(e){let{items:t}=this,r=`[${t.indexOf(e)+1}/${t.length}] ${se(e.label)}`;this.nvim.callTimer("coc#ui#echo_lines",[[r]],!0)}updateItem(e,t){if(!this.buffer||t>=this.length)return;let{nvim:i}=this,r=this.indexToLnum(t);i.pauseNotification(),this.buffer.setOption("modifiable",!0,!0),i.call("setbufline",[this.bufnr,r,e.label],!0),this.doHighlight(t,t+1),this.buffer.setOption("modifiable",!1,!0),i.resumeNotification(!0,!0)}async getItems(){if(this.length==0||!this.window)return[];let e=await this.nvim.call("mode");if(e=="v"||e=="V"){let[r,o]=await this.getSelectedRange(),s=[];for(let a=r;a<=o;a++){let l=this.lnumToIndex(a),u=this.items[l];u&&s.push(u)}return s}let{selectedItems:t}=this;if(t.length)return t;let i=await this.item;return le(i)}async onMouse(e){let{nvim:t,window:i}=this;if(!i)return;let[r,o,s]=await t.eval("[v:mouse_winid,v:mouse_lnum,v:mouse_col]");if(e=="mouseDown"){this.mouseDown={winid:r,lnum:o,col:s,current:r==i.id};return}let a=r==i.id;if(a&&e=="doubleClick"&&(this.setCursor(o),this._onDoubleClick.fire()),a&&e=="mouseDrag"){if(!this.mouseDown)return;await this.selectLines(this.mouseDown.lnum,o)}else if(a&&e=="mouseUp"){if(!this.mouseDown)return;this.mouseDown.lnum==o?(this.setCursor(o),t.command("redraw",!0)):await this.selectLines(this.mouseDown.lnum,o)}else!a&&e=="mouseUp"&&(t.pauseNotification(),t.call("win_gotoid",r,!0),t.call("cursor",[o,s],!0),t.command("redraw",!0),t.resumeNotification(!1,!0))}async resume(){let{items:e,selected:t,nvim:i}=this;if(await this.drawItems(e,!0,!0),!(!t.size||!this.buffer)){i.pauseNotification();for(let r of t)this.buffer.placeSign({lnum:r,id:ut.signOffset+r,name:"CocSelected",group:"coc-list"});i.command("redraw",!0),i.resumeNotification(!1,!0)}}async toggleSelection(){let{nvim:e,reversed:t}=this;await e.call("win_gotoid",[this.winid]);let i=await e.call("line","."),r=await e.call("mode");if(r=="v"||r=="V"){let[o,s]=await this.getSelectedRange();o>s&&([o,s]=[s,o]);for(let l=o;l<=s;l++)this.toggleLine(l);this.setCursor(s),e.command("redraw",!0),await e.resumeNotification();return}e.pauseNotification(),this.toggleLine(i),this.setCursor(t?i-1:i+1),e.command("redraw",!0),await e.resumeNotification()}toggleLine(e){let{selected:t,buffer:i}=this,r=t.has(e),o=ut.signOffset;r?(t.delete(e),i.unplaceSign({id:o+e,group:"coc-list"})):(t.add(e),i.placeSign({lnum:e,id:o+e,name:"CocSelected",group:"coc-list"}))}async selectLines(e,t){let{nvim:i,buffer:r,length:o}=this,s=ut.signOffset;this.clearSelection();let{selected:a}=this;i.pauseNotification(),e>t&&([e,t]=[t,e]);for(let u=e;u<=t&&!(u>o);u++)a.add(u),r.placeSign({lnum:u,id:s+u,name:"CocSelected",group:"coc-list"});this.setCursor(t),i.command("redraw",!0),await i.resumeNotification()}async selectAll(){let{length:e}=this;e>0&&await this.selectLines(1,e)}clearSelection(){let{selected:e,buffer:t}=this;t&&e.size>0&&(t.unplaceSign({group:"coc-list"}),this.selected.clear())}get ready(){return this.window?Promise.resolve():new Promise(e=>{let t=this.onDidLineChange(()=>{t.dispose(),e()})})}getHeight(e,t){let{listOptions:i}=this;if(typeof i.height=="number")return i.height;let r=ut.get("height",10);return t&&!i.interactive&&i.input.length==0&&(r=Math.min(e,r)),Math.max(1,r)}async drawItems(e,t,i=!1){let{nvim:r,name:o,listOptions:s}=this;if(this.items=e.length>this.limitLines?e.slice(0,this.limitLines):e,!this.window){let c=this.getHeight(e.length,t),{position:d,numberSelect:h}=s,[g,f,m]=await r.call("coc#list#create",[d,c,o,h]);this.tabnr=m,this.height=c,this.buffer=r.createBuffer(g);let y=this.window=r.createWindow(f),w=ut.get("statusLineSegments");w&&y.setOption("statusline",w.join(" "),!0),this._onDidOpen.fire(this.bufnr)}let a=[],l=0;this.items.forEach((c,d)=>{a.push(c.label),!i&&l==0&&c.preselect&&(l=d)});let u=i?this.currIndex:l;this.setLines(a,0,u),this._onDidLineChange.fire()}async appendItems(e){if(!this.window||e.length===0)return;let t=this.items.length,i=this.limitLines-t;if(i>0){let r=io.label),r.length,this.currIndex)}}get shouldSort(){let{matcher:e,interactive:t}=this.listOptions;return!(t||e!=="fuzzy")}setLines(e,t,i){let{nvim:r,buffer:o,window:s,reversed:a,newTab:l}=this;if(!(!o||!s)){if(r.pauseNotification(),t||(r.call("coc#compat#clear_matches",[s.id],!0),e.length||(e=["No results, press ? on normal mode to get help."],r.call("coc#compat#matchaddpos",["Comment",[[1]],99,s.id],!0))),o.setOption("modifiable",!0,!0),a){let u=e.reverse();t?r.call("coc#compat#prepend_lines",[o.id,u],!0):o.setLines(u,{start:0,end:-1,strictIndexing:!1},!0)}else o.setLines(e,{start:t?-1:0,end:-1,strictIndexing:!1},!0);if(o.setOption("modifiable",!1,!0),a&&!l){let u=ut.get("height",10);r.call("coc#window#set_height",[s.id,Math.max(Math.min(u,this.length),1)],!0)}if(i>this.items.length-1&&(i=0),i==0)if(t==0)this.doHighlight(0,299);else{let u=this.length-t-1;u<300&&this.doHighlight(u,Math.min(299,this.length-1))}else{let u=l?b.env.lines:this.height;this.doHighlight(Math.max(0,i-u),Math.min(i+u+1,this.length-1))}if(!t){this.currIndex=i;let u=this.indexToLnum(i);s.setCursor([u,0],!0),r.call("coc#list#select",[o.id,u],!0)}a&&r.command("normal! zb",!0),r.command("redraws",!0),r.resumeNotification(!0,!0)}}restoreWindow(){if(this.newTab)return;let{winid:e,height:t}=this;e&&t&&this.nvim.call("coc#window#set_height",[e,t],!0)}get length(){return this.items.length}get selectedItems(){let{selected:e,items:t}=this,i=[];for(let r of e){let o=this.lnumToIndex(r);t[r-1]&&i.push(t[o])}return i}doHighlight(e,t){let{items:i,reversed:r,length:o,buffer:s}=this,a=[],l=u=>{let c=this.indexToLnum(u)-1,{ansiHighlights:d}=i[u];if(d)for(let h of d){let{span:g,hlGroup:f}=h;a.push({hlGroup:f,lnum:c,colStart:g[0],colEnd:g[1]})}};if(r)for(let u=Math.min(t,o-1);u>=e;u--)l(u);else for(let u=e;u<=Math.min(t,o-1);u++)l(u);e=this.indexToLnum(e)-1,t=this.indexToLnum(t)-1,e>t&&([e,t]=[t,e]),!(!s||a.length==0)&&s.updateHighlights("list",a,{start:e,end:t+1,priority:99})}setCursor(e,t=0,i){var s;let{items:r}=this,o=r.length==0?1:r.length;e>o||(i=i??this.lnumToIndex(e),this.onLineChange(i),(s=this.window)==null||s.setCursor([e,t],!0),this.nvim.call("coc#list#select",[this.bufnr,e],!0))}async setIndex(e){if(e<0||e>=this.items.length)return;let{nvim:t}=this,i=this.indexToLnum(e);t.pauseNotification(),this.setCursor(i,0,e),t.command("redraw",!0),await t.resumeNotification(!1)}async moveCursor(e){let{index:t,reversed:i}=this;await this.setIndex(i?t-e:t+e)}async getSelectedRange(){let{nvim:e}=this;await e.call("coc#prompt#stop_prompt",["list"]),await e.eval('feedkeys("\\", "in")');let[,t]=await e.call("getpos","'<"),[,i]=await e.call("getpos","'>");return this.nvim.call("coc#prompt#start_prompt",["list"],!0),[t,i]}cancel(){this.sequence.cancel()}reset(){this.cancel(),this.window&&(this.window=null,this.buffer=null,this.tabnr=void 0)}dispose(){Y(this.disposables),this.nvim.call("coc#window#close",[ye(this.winid,-1)],!0),this.reset(),this.items=[],this._onDidChangeLine.dispose(),this._onDidOpen.dispose(),this._onDidClose.dispose(),this._onDidLineChange.dispose(),this._onDoubleClick.dispose()}}});async function oC(n,e,t,i){if(n.length===0)return;let r=new d1,o=n.length;function s(l){let u=[];r.start();for(let c=l;c{setImmediate(()=>{l(s(a))})})}var GG,d1,zG=D(()=>{"use strict";GG=15,d1=class{constructor(e=GG){this.yieldAfter=Math.max(e,GG),this.startTime=Date.now(),this.counter=0,this.total=0,this.counterInterval=1}start(){this.startTime=Date.now()}shouldYield(){if(++this.counter>=this.counterInterval){let e=Date.now()-this.startTime,t=Math.max(0,this.yieldAfter-e);if(this.total+=this.counter,this.counter=0,e>=this.yieldAfter||t<=1)return this.counterInterval=1,this.total=0,!0;switch(e){case 0:case 1:this.counterInterval=this.total*2;break}}return!1}}});function sC(n){return n.filterText!=null?JZ(n.filterText,n.label):n.label}function KG(n,e){return e?zme(n):[n]}function um(n){let{label:e,converted:t}=n;if(t)return n;if(e.includes(` +`)&&(e=n.label=e.replace(/\r?\n.*/gm,"")),e.includes(Xme)){let{line:i,highlights:r}=jc(e);n.label=i,Array.isArray(n.ansiHighlights)||(n.ansiHighlights=r)}return n.converted=!0,n}function Gme(n,e,t,i){return t?bY(e,n):i?n.toLowerCase().indexOf(e.toLowerCase()):n.indexOf(e)}function zme(n){let e=[],t=0,i=0,r="";for(;io.replace(/\\\s/g," ").trim()).filter(o=>o.length>0)}var $me,Xme,QG,Ja,cm,VG=D(()=>{"use strict";Ce();ee();Oc();Se();zG();UP();nC();fs();$();pe();he();Za();$me=J("list-worker"),Xme="\x1B",QG=[32,9],Ja="CocListSearch",cm=class{constructor(e,t,i){this.list=e;this.prompt=t;this.listOptions=i;this._loading=!1;this._finished=!1;this.mutex=new Oi;this.totalItems=[];this._onDidChangeItems=new p.Emitter;this._onDidChangeLoading=new p.Emitter;this.onDidChangeItems=this._onDidChangeItems.event;this.onDidChangeLoading=this._onDidChangeLoading.event;this.fuzzyMatch=b.createFuzzyMatch()}set loading(e){this._loading!=e&&(this._loading=e,this._onDidChangeLoading.fire(e))}get isLoading(){return this._loading}async loadItems(e,t=!1){this.cancelFilter(),this.filteredCount=0,this._finished=!1;let{list:i,listOptions:r}=this;this.loading=!0;let{interactive:o}=r;this.tokenSource=new p.CancellationTokenSource;let s=this.tokenSource.token,a=await i.loadItems(e,s);if(!s.isCancellationRequested)if(a=a??[],Array.isArray(a)){this.tokenSource=null,this.totalItems=a,this.loading=!1,this._finished=!0;let l;o?(l=this.convertToHighlightItems(a),this._onDidChangeItems.fire({sorted:!0,items:l,reload:t,finished:!0})):(this.filterTokenSource=new p.CancellationTokenSource,await this.mutex.use(async()=>{await this.filterItems(a,{reload:t},s)}))}else{let l=a,u=this.totalItems=[],c=0,d=e.input;this.filterTokenSource=new p.CancellationTokenSource;let h=async w=>{await this.mutex.use(async()=>{if(this.input!=d&&(d=this.input,c=ye(this.filteredCount,0)),c>=u.length)return;let C=c>0,P=u.slice(c);if(c=u.length,o){let T=this.convertToHighlightItems(P);this._onDidChangeItems.fire({items:T,append:C,reload:t,sorted:!0,finished:w})}else{let T=this.filterTokenSource;await this.filterItems(P,{append:C,reload:t},T.token)}})},g=setInterval(async()=>{await h()},50);l.on("data",w=>{u.push(w)});let f=async()=>{if(l!=null&&(clearInterval(g),this.tokenSource=null,l=null,this.loading=!1,this._finished=!0,m.dispose(),!s.isCancellationRequested)){if(u.length==0){this._onDidChangeItems.fire({items:[],append:!1,sorted:!0,reload:t,finished:!0});return}await h(!0)}},m=s.onCancellationRequested(()=>{this.mutex.reset(),l==null||l.dispose(),f()}),y=l;l.on("error",async w=>{l!=null&&(l=null,y.dispose(),this.tokenSource=null,this.loading=!1,m.dispose(),clearInterval(g),b.nvim.call("coc#prompt#stop_prompt",["list"],!0),b.nvim.echoError(`Task error: ${w.toString()}`),$me.error("List task error:",w))}),l.on("end",f)}}async drawItems(){let{totalItems:e}=this;if(e.length===0)return;this.cancelFilter();let t=this.filterTokenSource=new p.CancellationTokenSource,i=t.token;await this.mutex.use(async()=>{if(i.isCancellationRequested)return;let{totalItems:r}=this;this.filteredCount=r.length,await this.filterItems(r,{},t.token)})}cancelFilter(){this.filterTokenSource&&(this.filterTokenSource.cancel(),this.filterTokenSource=null)}stop(){this.cancelFilter(),this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=null),this.loading=!1}get length(){return this.totalItems.length}get input(){return this.prompt.input}convertToHighlightItems(e){let t=se(this.input);t.length>0&&this.fuzzyMatch.setPattern(t);let i=e.map(r=>{if(um(r),t.length>0&&r.filterText!==""){let s=sC(r),a=this.fuzzyMatch.matchHighlights(s,Ja);r.ansiHighlights=Array.isArray(r.ansiHighlights)?r.ansiHighlights.filter(l=>l.hlGroup!==Ja):[],a&&r.ansiHighlights.push(...a.highlights)}return r});return this.fuzzyMatch.free(),i}async filterItemsByInclude(e,t,i,r){let{ignorecase:o}=this.listOptions,s=ut.smartcase,a=KG(e,ut.extendedSearchMode);o&&(a=a.map(l=>l.toLowerCase())),await oC(t,l=>{um(l);let u=[],c=sC(l),d=ra(c),h=0;l.ansiHighlights=le(l.ansiHighlights).filter(g=>g.hlGroup!==Ja);for(let g of a){let f=c.slice(h),m=Gme(f,g,s,o);if(m===-1)break;let y=m+h+g.length;u.push([d(m+h),d(y)]),h=y}return u.length!==a.length?!1:(l.ansiHighlights.push(...u.map(g=>({span:g,hlGroup:Ja}))),!0)},r,i)}async filterItemsByRegex(e,t,i,r){let{ignorecase:o}=this.listOptions,s=o?"iu":"u",a=KG(e,ut.extendedSearchMode),l=a.reduce((u,c)=>{try{u.push(new RegExp(c,s))}catch{}return u},[]);await oC(t,u=>{um(u),u.ansiHighlights=le(u.ansiHighlights).filter(f=>f.hlGroup!==Ja);let c=[],d=sC(u),h=ra(d),g=0;for(let f of l){let m=d.slice(g).match(f);if(m==null)break;let y=m.index+g+m[0].length;c.push([h(m.index+g),h(y)]),g=y}return c.length!==a.length?!1:(u.ansiHighlights.push(...c.map(f=>({span:f,hlGroup:Ja}))),!0)},r,i)}async filterItemsByFuzzyMatch(e,t,i,r){let{extendedSearchMode:o,smartcase:s}=ut,{sort:a}=this.listOptions,l=0;this.fuzzyMatch.setPattern(e,!o);let u=Ld(e);o&&(u=u.filter(c=>!QG.includes(c))),await oC(t,c=>{um(c);let d=sC(c),h=this.fuzzyMatch.matchHighlights(d,Ja);if(!h||s&&!Fd(u,d))return!1;let g=Array.isArray(c.ansiHighlights)?c.ansiHighlights.filter(f=>f.hlGroup!=Ja):[];return g.push(...h.highlights),{sortText:typeof c.sortText=="string"?c.sortText:String.fromCharCode(l),score:h.score,ansiHighlights:g}},(c,d)=>{r(c,d,a)},i)}async filterItems(e,t,i){let{input:r}=this;if(r.length===0){let l=e.map(u=>um(u));this._onDidChangeItems.fire({items:l,sorted:!0,finished:this._finished,...t});return}let o=!1,s=[],a=(l,u,c)=>{let d=u&&this._finished;if(!(i.isCancellationRequested||!d&&l.length==0))if(c)s.push(...l),u&&this._onDidChangeItems.fire({items:s,append:!1,sorted:!1,reload:t.reload,finished:d});else{let h=t.append===!0||o;o=!0,this._onDidChangeItems.fire({items:l,append:h,sorted:!0,reload:t.reload,finished:d})}};switch(this.listOptions.matcher){case"strict":await this.filterItemsByInclude(r,e,i,a);break;case"regex":await this.filterItemsByRegex(r,e,i,a);break;default:await this.filterItemsByFuzzyMatch(r,e,i,a)}}dispose(){this.stop()}}});var Kme,Qme,dm,e9=D(()=>{"use strict";Sa();ee();ce();$();We();he();Za();u1();c1();XG();VG();Kme=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Qme=ge(50,1),dm=class{constructor(e,t,i,r,o){this.nvim=e;this.prompt=t;this.list=i;this.listOptions=r;this.listArgs=o;this.loadingFrame="";this.hidden=!1;this.disposables=[];this.args=[];this.ui=new lm(e,i.name,r),this.history=new mu(t,i.name,l1,b.cwd),this.worker=new cm(i,t,r);let s=mt(async()=>{let[d,h,g]=await e.eval('[coc#list#has_preview(),win_getid(),line(".")]');if(d&&h==this.winid){let f=this.ui.lnumToIndex(g);await this.doPreview(f)}},Qme);this.disposables.push({dispose:()=>{s.clear()}}),this.ui.onDidChangeLine(s,null,this.disposables),this.ui.onDidChangeLine(this.resolveItem,this,this.disposables),this.ui.onDidLineChange(this.resolveItem,this,this.disposables);let a=mt(async()=>{this.updateStatus();let{autoPreview:d}=this.listOptions;if(!d){let[h,g]=await e.eval("[coc#list#has_preview(),mode()]");if(g!="n"||!h)return}await this.doAction("preview")},50);this.disposables.push({dispose:()=>{a.clear()}}),this.ui.onDidLineChange(a,null,this.disposables),this.ui.onDidOpen(async()=>{typeof this.list.doHighlight=="function"&&this.list.doHighlight(),this.listOptions.first&&await this.doAction()},null,this.disposables),this.ui.onDidClose(this.hide,this,this.disposables),this.ui.onDidDoubleClick(this.doAction,this,this.disposables),this.worker.onDidChangeItems(d=>{this.hidden||this.ui.onDidChangeItems(d)},null,this.disposables);let l=0,u,c;this.disposables.push(p.Disposable.create(()=>{clearTimeout(u),clearInterval(c)})),this.worker.onDidChangeLoading(d=>{this.hidden||(u&&clearTimeout(u),d?(l=Date.now(),c&&clearInterval(c),c=setInterval(()=>{let h=Math.floor((Date.now()-l)%1e3/100);this.loadingFrame=Kme[h],this.updateStatus()},100)):u=setTimeout(()=>{this.loadingFrame="",c&&clearInterval(c),c=null,this.updateStatus()},Math.max(0,200-(Date.now()-l))))},null,this.disposables)}async start(e){this.args=e,this.cwd=b.cwd,this.hidden=!1;let{listArgs:t}=this,i=await this.nvim.eval('[win_getid(),bufnr("%"),winheight("%")]');this.listArgs=t,this.history.filter(),this.targetWinid=i[0],this.targetBufnr=i[1],this.savedHeight=i[2],await this.worker.loadItems(this.context)}async reloadItems(){!this.ui.winid||await this.worker.loadItems(this.context,!0)}async call(e){await this.nvim.call("coc#prompt#stop_prompt",["list"]);let t=await this.ui.getItems(),i={name:this.name,args:this.listArgs,input:this.prompt.input,winid:this.targetWinid,bufnr:this.targetBufnr,targets:t},r=await this.nvim.call(e,[i]);return this.prompt.start(),r}async chooseAction(){let{nvim:e,defaultAction:t}=this,{actions:i}=this.list,r=i.map(d=>d.name),o=r.indexOf(t.name);o!=-1&&(r.splice(o,1),r.unshift(t.name));let s=new Set,a=[],l=[],u=b.env.dialog&&ut.get("menuAction",!1);for(let d of r){let h=0;for(let g of d){if(!s.has(g)){s.add(g),a.push(`${d.slice(0,h)}&${d.slice(h)}`);break}h++}h==d.length&&l.push(d)}l.length&&!u&&(r=r.filter(d=>!l.includes(d)));let c;u?(e.call("coc#prompt#stop_prompt",["list"],!0),c=await k.showMenuPicker(r,{title:"Choose action",shortcuts:!0}),c=c+1,this.prompt.start()):(await e.call("coc#prompt#stop_prompt",["list"]),c=await e.call("confirm",["Choose action:",a.join(` +`)]),await Zi(10),this.prompt.start()),c&&await this.doAction(r[c-1])}async doAction(e){let{list:t}=this,i;if(e!=null){if(i=t.actions.find(o=>o.name==e),!i){k.showErrorMessage(`Action ${e} not found`);return}}else i=this.defaultAction;let r;if(e=="preview"){let o=await this.ui.item;r=o?[o]:[]}else r=await this.ui.getItems();r.length&&await this.doItemAction(r,i)}async doPreview(e){let t=this.ui.getItem(e),i=this.list.actions.find(r=>r.name=="preview");!t||!i||await this.doItemAction([t],i)}async first(){await this.doDefaultAction(0)}async last(){await this.doDefaultAction(this.ui.length-1)}async previous(){await this.doDefaultAction(this.ui.index-1)}async next(){await this.doDefaultAction(this.ui.index+1)}async doDefaultAction(e){let{ui:t}=this,i=t.getItem(e);!i||(await this.ui.setIndex(e),await this.doItemAction([i],this.defaultAction),await t.echoMessage(i))}get name(){return this.list.name}get winid(){return this.ui.winid}get length(){return this.ui.length}get defaultAction(){let{defaultAction:e,actions:t,name:i}=this.list,r=b.getConfiguration(`list.source.${i}`),o;if(r.defaultAction&&(o=t.find(s=>s.name==r.defaultAction)),o||(o=t.find(s=>s.name==e)),o||(o=t[0]),!o)throw new Error(`default action "${e}" not found`);return o}async hide(e=!1,t=b.isVim){if(this.hidden)return;let{nvim:i,timer:r,targetWinid:o,context:s}=this,{winid:a}=this.ui;if(r&&clearTimeout(r),this.worker.stop(),this.history.add(),this.ui.reset(),l1.save(),this.hidden=!0,i.pauseNotification(),i.call("coc#prompt#stop_prompt",["list"],!0),a&&i.call("coc#list#close",[a,s.options.position,o,this.savedHeight],!0),e)return i.resumeNotification(!0,!0);await i.resumeNotification(!1),t&&(await Zi(10),i.call("coc#prompt#stop_prompt",["list"],!0),i.redrawVim())}toggleMode(){let e=this.prompt.mode=="normal"?"insert":"normal";this.prompt.mode=e,this.listOptions.mode=e,this.updateStatus()}stop(){this.worker.stop()}async resolveItem(){let e=this.ui.index,t=this.ui.getItem(e);if(!t||t.resolved)return;let{list:i}=this;if(typeof i.resolveItem=="function"){let r=t.label,o=await Promise.resolve(i.resolveItem(t));if(o&&e==this.ui.index){if(Object.assign(t,o,{resolved:!0}),r==o.label)return;this.ui.updateItem(t,e)}}}async showHelp(){await this.hide();let{list:e,nvim:t}=this;t.pauseNotification(),t.command("tabe +setl\\ previewwindow [LIST HELP]",!0),t.command("setl nobuflisted noswapfile buftype=nofile bufhidden=wipe",!0),await t.resumeNotification();let i=e.options&&e.options.length,r=await t.buffer,o=new Ki;if(o.addLine("NAME","Label"),o.addLine(` ${e.name} - ${e.description||""} +`),o.addLine("SYNOPSIS","Label"),o.addLine(` :CocList [LIST OPTIONS] ${e.name}${i?" [ARGUMENTS]":""} +`),e.detail){o.addLine("DESCRIPTION","Label");let a=e.detail.split(` +`).map(l=>" "+l);o.addLine(a.join(` +`)+` +`)}if(i){o.addLine("ARGUMENTS","Label"),o.addLine("");for(let a of e.options)o.addLine(a.name,"Special"),o.addLine(` ${a.description}`),o.addLine("");o.addLine("")}let s=b.getConfiguration(`list.source.${e.name}`);if(Object.keys(s).length){o.addLine("CONFIGURATIONS","Label"),o.addLine("");for(let a of Object.keys(s)){let l=s[a],u=`list.source.${e.name}.${a}`,c=ye(b.configurations.getDescription(u),a);o.addLine(` "${u}"`,"MoreMsg"),o.addText(` - ${c} current value: `),o.addText(JSON.stringify(l),"Special")}o.addLine("")}o.addLine("ACTIONS","Label"),o.addLine(` ${e.actions.map(a=>a.name).join(", ")}`),o.addLine(""),o.addLine("see ':h coc-list-options' for available list options.","Comment"),t.pauseNotification(),o.render(r,0,-1),t.command("setl nomod",!0),t.command("setl nomodifiable",!0),t.command("normal! gg",!0),t.command("nnoremap q :bd!",!0),await t.resumeNotification()}async switchMatcher(){let{matcher:e,interactive:t}=this.listOptions;if(t)return;let i=["fuzzy","strict","regex"],r=i.indexOf(e)+1;r>=i.length&&(r=0),this.listOptions.matcher=i[r],this.prompt.matcher=i[r],await this.worker.drawItems()}updateStatus(){let{ui:e,list:t,nvim:i}=this;if(!e.bufnr)return;let r=i.createBuffer(e.bufnr),o={mode:this.prompt.mode.toUpperCase(),args:this.args.join(" "),name:t.name,cwd:this.cwd,loading:this.loadingFrame,total:this.worker.length};r.setVar("list_status",o,!0),i.command("redraws",!0)}get context(){let{winid:e}=this.ui;return{options:this.listOptions,args:this.listArgs,input:this.prompt.input,cwd:b.cwd,window:this.window,buffer:this.buffer,listWindow:e?this.nvim.createWindow(e):void 0}}get window(){return this.targetWinid?this.nvim.createWindow(this.targetWinid):void 0}get buffer(){return this.targetBufnr?this.nvim.createBuffer(this.targetBufnr):void 0}onMouseEvent(e){switch(e){case"":return this.ui.onMouse("mouseDown");case"":return this.ui.onMouse("mouseDrag");case"":return this.ui.onMouse("mouseUp");case"<2-LeftMouse>":return this.ui.onMouse("doubleClick")}}async doNumberSelect(e){if(!this.listOptions.numberSelect)return!1;let t=e.charCodeAt(0);if(t>=48&&t<=57){let i=Number(e);if(i==0&&(i=10),this.ui.length>=i)return this.nvim.pauseNotification(),this.ui.setCursor(i),await this.nvim.resumeNotification(),await this.doAction(),!0}return!1}jumpBack(){let{targetWinid:e,nvim:t}=this;e&&(t.pauseNotification(),t.call("coc#prompt#stop_prompt",["list"],!0),this.nvim.call("win_gotoid",[e],!0),t.resumeNotification(!1,!0))}async resume(){this.winid&&await this.hide();let e=await this.nvim.eval('[win_getid(),bufnr("%"),winheight("%")]');this.hidden=!1,this.targetWinid=e[0],this.targetBufnr=e[1],this.savedHeight=e[2],this.prompt.start(),await this.ui.resume(),this.listOptions.autoPreview&&await this.doAction("preview")}async doItemAction(e,t){let{noQuit:i,position:r}=this.listOptions,{nvim:o}=this,s=t.persist===!0||t.name=="preview";r==="tab"&&t.tabPersist&&(s=!0);let a=this.winid&&(s||i);if(a?s||(o.pauseNotification(),o.call("coc#prompt#stop_prompt",["list"],!0),o.call("win_gotoid",[this.context.window.id],!0),await o.resumeNotification()):await this.hide(),t.multiple)await Promise.resolve(t.execute(e,this.context));else if(t.parallel)await Promise.all(e.map(l=>Promise.resolve(t.execute(l,this.context))));else for(let l of e)await Promise.resolve(t.execute(l,this.context));a&&this.ui.restoreWindow(),t.reload&&a?await this.reloadItems():a&&this.nvim.command("redraw",!0)}onInputChange(){this.timer&&clearTimeout(this.timer),this.ui.cancel(),this.history.filter(),this.listOptions.input=this.prompt.input,this.listOptions.interactive?(this.worker.stop(),this.timer=setTimeout(async()=>{await this.worker.loadItems(this.context)},ut.debounceTime)):this.worker.drawItems()}dispose(){this.hide(!0),Y(this.disposables),this.worker.dispose(),this.ui.dispose()}}});function hm(n,e){return n.length>e?n.slice(0,e-1)+".":n+" ".repeat(e-n.length)}function aC(n,e){if(!n.startsWith("file:"))return n;let t=A.parse(n).fsPath;return pt(e,t)?R.relative(e,t):t}function Mr(n,e){if(e.length===0)return[];let t=[];if(n){let i=Array(Math.min(...e.map(r=>r.label.length))).fill(0);for(let r of e)for(let o=0;o({...r,label:r.label.map((o,s)=>o.padEnd(i[s])).join(" ")}))}else t=e.map(i=>({...i,label:i.label.join(" ")}));return t}function t9(n,e){if(n==="hidden")return"";if(n==="full")return e;if(n==="short"){let t=e.split(R.sep);return t.length<2?e:[...t.slice(0,t.length-2).filter(r=>r.length>0).map(r=>r[0]),t[t.length-1]].join(R.sep)}else{let t=e.split(R.sep);return se(t[t.length-1])}}var Wo=D(()=>{"use strict";ce();Je();at();pe()});function ebe(n,e){let t=n.indexOf(e);return t==-1?-1:n.length-t}var Vme,gm,i9=D(()=>{"use strict";kt();hs();ko();he();qo();Wo();pe();Vme=di.as(ds.ExtensionContribution),gm=class extends pi{constructor(){super();this.defaultAction="run";this.description="registered commands of coc.nvim";this.name="commands";this.mru=b.createMru("commands"),this.addAction("run",async t=>{await ie.fireCommand(t.data.cmd)}),this.addAction("append",async t=>{let{cmd:i}=t.data;await b.nvim.feedKeys(`:CocCommand ${i} `,"n",!1)})}async loadItems(t){let i=[],r=await this.mru.load(),o=new Set;for(let s of Vme.onCommands.concat(ie.commandList)){let{id:a,title:l}=s;if(o.has(a))continue;o.add(a);let u=se(l);i.push({label:[a,u],filterText:a+" "+u,data:{cmd:a,score:ebe(r,a)}})}return i.sort((s,a)=>a.data.score-s.data.score),Mr(this.alignColumns,i)}doHighlight(){let{nvim:t}=this;t.pauseNotification(),t.command("syntax match CocCommandsTitle /\\t.*$/ contained containedin=CocCommandsLine",!0),t.command("highlight default link CocCommandsTitle Comment",!0),t.resumeNotification(!1,!0)}}});function tbe(n,e){let t=e.uri??A.file(e.filename).toString(),i="",r=[],o=0;n.length>0&&(i=n+" ",r.push({span:[o,o+de(n)],hlGroup:"Directory"})),o=de(i);let s=e.lnum??e.range.start.line+1,a=e.col??de(e.text.slice(0,e.range.start.character))+1,l=`|${e.type?e.type+" ":""}${s} Col ${a}|`;if(i+=l,r.push({span:[o,o+de(l)],hlGroup:"LineNr"}),e.type){let d=e.type.toLowerCase()==="error"?"Error":"WarningMsg";r.push({span:[o+1,o+de(e.type)],hlGroup:d})}if(e.range&&e.range.start.line==e.range.end.line){let d=de(i)+1,h=d+de(e.text.slice(0,e.range.start.character)),g=d+de(e.text.slice(0,e.range.end.character));r.push({span:[h,g],hlGroup:"Search"})}i+=" "+e.text;let u=`${n}${e.text.trim()}`,c;if(e.range)c=Ze.create(t,e.range);else{let d=V.create(e.lnum-1,e.col-1),h=V.create((e.end_lnum??e.lnum)-1,(e.end_col??e.col)-1);c=Ze.create(t,M.create(d,h))}return c.targetRange=e.targetRange?e.targetRange:M.create(s-1,0,s-1,99),{label:i,location:c,filterText:u,ansiHighlights:r}}var ho,pm=D(()=>{"use strict";ae();Je();kt();Se();at();ce();pe();qo();ho=class extends pi{constructor(){super();this.defaultAction="open";this.description="show locations saved by g:coc_jump_locations variable";this.name="location";this.createAction({name:"refactor",multiple:!0,execute:async t=>{let i=t.map(r=>r.location);await ie.executeCommand("editor.action.showRefactor",i)}}),this.addLocationActions()}async loadItems(t,i){let r=await this.nvim.getVar("coc_jump_locations");r=le(r);let o=t.buffer.id,s=r.every(l=>l.bufnr==o);return r.map(l=>{let u=s?"":l.filename;return u.length>0&&R.isAbsolute(u)&&(u=pt(t.cwd,u)?R.relative(t.cwd,u):u),tbe(u,l)})}}});function ibe(n,e,t,i="full"){let r=pt(e,n.file)?R.relative(e,n.file):n.file,o=t9(i,r),s=i!=="hidden"?[`${o}:${n.lnum}`]:[],a=t?`[${n.source} ${ye(n.code,"")}]`:n.source;return[...s,a,n.severity,n.message]}var fm,n9=D(()=>{"use strict";td();ee();at();ce();Wo();pm();fm=class extends ho{constructor(t){super();this.defaultAction="open";this.description="diagnostics of current workspace";this.name="diagnostics";hi.onDidRefresh(async()=>{let i=t.getSession("diagnostics");i&&await i.reloadItems()},null,this.disposables)}async loadItems(t){let i=await hi.getDiagnosticList(),{cwd:r}=t,o=this.getConfig(),s=o.get("includeCode",!0),a=o.get("pathFormat","full"),l=i.map(u=>({label:ibe(u,r,s,a),location:u.location}));return Mr(this.alignColumns,l)}doHighlight(){let{nvim:t}=this;t.pauseNotification(),t.command("syntax match CocDiagnosticsFile /\\v^\\s*\\S+/ contained containedin=CocDiagnosticsLine",!0),t.command("syntax match CocDiagnosticsError /\\tError\\s*\\t/ contained containedin=CocDiagnosticsLine",!0),t.command("syntax match CocDiagnosticsWarning /\\tWarning\\s*\\t/ contained containedin=CocDiagnosticsLine",!0),t.command("syntax match CocDiagnosticsInfo /\\tInformation\\s*\\t/ contained containedin=CocDiagnosticsLine",!0),t.command("syntax match CocDiagnosticsHint /\\tHint\\s*\\t/ contained containedin=CocDiagnosticsLine",!0),t.command("highlight default link CocDiagnosticsFile Comment",!0),t.command("highlight default link CocDiagnosticsError CocErrorSign",!0),t.command("highlight default link CocDiagnosticsWarning CocWarningSign",!0),t.command("highlight default link CocDiagnosticsInfo CocInfoSign",!0),t.command("highlight default link CocDiagnosticsHint CocHintSign",!0),t.resumeNotification(!1,!0)}}});function rbe(n,e){return n.data.priority!=e.data.priority?e.data.priority-n.data.priority:e.data.id>n.data.id?1:-1}function obe(n){let e="+";return n=="disabled"?e="-":n=="activated"?e="*":n=="unknown"&&(e="?"),e}function sbe(n){switch(n){case"unknown":return 2;case"activated":return 1;case"disabled":return-1;default:return 0}}var nbe,mm,r9=D(()=>{"use strict";Je();bu();ee();ce();he();qo();Wo();nbe=ge(50,0),mm=class extends pi{constructor(t){super();this.manager=t;this.defaultAction="toggle";this.description="manage coc extensions";this.name="extensions";this.addAction("toggle",async i=>{let{id:r,state:o}=i.data;o!="disabled"&&(o=="activated"?await this.manager.deactivate(r):await this.manager.activate(r),await Zi(nbe))},{persist:!0,reload:!0,parallel:!0}),this.addAction("configuration",async i=>{let{root:r}=i.data,o=R.join(r,"package.json");if(F.existsSync(o)){let a=F.readFileSync(o,"utf8").split(/\r?\n/).findIndex(l=>l.includes('"contributes"'));await b.jumpTo(A.file(o),{line:a==-1?0:a,character:0})}}),this.addAction("open",async i=>{let{root:r}=i.data;b.nvim.call("coc#ui#open_url",[r],!0)}),this.addAction("disable",async i=>{let{id:r,state:o}=i.data;o!=="disabled"&&await this.manager.toggleExtension(r)},{persist:!0,reload:!0,parallel:!0}),this.addAction("enable",async i=>{let{id:r,state:o}=i.data;o=="disabled"&&await this.manager.toggleExtension(r)},{persist:!0,reload:!0,parallel:!0}),this.addAction("lock",async i=>{let{id:r}=i.data;this.manager.states.setLocked(r,!0)},{persist:!0,reload:!0}),this.addAction("help",async i=>{let{root:r}=i.data,s=F.readdirSync(r,{encoding:"utf8"}).find(a=>/^readme/i.test(a));s&&await b.jumpTo(A.file(s))}),this.addAction("reload",async i=>{let{id:r}=i.data;await this.manager.reloadExtension(r)},{persist:!0,reload:!0}),this.addMultipleAction("uninstall",async i=>{let r=[];for(let o of i)o.data.isLocal||r.push(o.data.id);await this.manager.uninstallExtensions(r)})}async loadItems(){let t=[],i=await Wt.getExtensionStates();for(let r of i){let o=obe(r.state),s=F.realpathSync(r.root),a=r.isLocked;t.push({label:[`${o} ${r.id}${a?" \uE0A2":""}`,...r.isLocal?["[RTP]"]:[],r.version,s.replace(Et.homedir(),"~")],filterText:r.id,data:{id:r.id,root:s,state:r.state,isLocal:r.isLocal,priority:sbe(r.state)}})}return t.sort(rbe),Mr(this.alignColumns,t)}doHighlight(){let{nvim:t}=this;t.pauseNotification(),t.command("syntax match CocExtensionsActivited /\\v^\\*/ contained containedin=CocExtensionsLine",!0),t.command("syntax match CocExtensionsLoaded /\\v^\\+/ contained containedin=CocExtensionsLine",!0),t.command("syntax match CocExtensionsDisabled /\\v^-/ contained containedin=CocExtensionsLine",!0),t.command("syntax match CocExtensionsName /\\v%3c\\S+/ contained containedin=CocExtensionsLine",!0),t.command("syntax match CocExtensionsRoot /\\v\\t[^\\t]*$/ contained containedin=CocExtensionsLine",!0),t.command("syntax match CocExtensionsLocal /\\v\\[RTP\\]/ contained containedin=CocExtensionsLine",!0),t.command("highlight default link CocExtensionsActivited Special",!0),t.command("highlight default link CocExtensionsLoaded Normal",!0),t.command("highlight default link CocExtensionsDisabled Comment",!0),t.command("highlight default link CocExtensionsName String",!0),t.command("highlight default link CocExtensionsLocal MoreMsg",!0),t.command("highlight default link CocExtensionsRoot Comment",!0),t.resumeNotification(!1,!0)}}});var bm,o9=D(()=>{"use strict";Je();at();We();he();qo();bm=class extends pi{constructor(){super();this.defaultAction="edit";this.description="list of current workspace folders";this.name="folders";this.addAction("edit",async t=>{let i=await this.nvim.call("input",["Folder: ",t.label,"dir"]);if(!Tc(i)){k.showWarningMessage(`invalid path: ${i}`);return}b.workspaceFolderControl.renameWorkspaceFolder(t.label,i)}),this.addAction("delete",async t=>{b.workspaceFolderControl.removeWorkspaceFolder(t.label)},{reload:!0,persist:!0}),this.addAction("newfile",async(t,i)=>{let r=await k.requestInput("File name",t.label+"/");!r||(await b.createFile(r,{overwrite:!1,ignoreIfExists:!0}),await this.jumpTo(A.file(r).toString(),null,i))})}async loadItems(){return b.folderPaths.map(t=>({label:t}))}}});var ym,s9=D(()=>{"use strict";ae();Te();he();qo();Wo();ym=class extends pi{constructor(){super();this.defaultAction="open";this.description="links of current buffer";this.name="links";this.addAction("open",async t=>{let{target:i}=t.data;await b.openResource(i)}),this.addAction("jump",async t=>{let{location:i}=t.data;await b.jumpTo(i.uri,i.range.start)})}async loadItems(t,i){let r=await t.window.buffer,o=b.getAttachedDocument(r.id),s=[],a=await I.getDocumentLinks(o.textDocument,i);if(a==null)throw new Error("Links provider not found.");let l=[];for(let u of a)u=u.target?u:await I.resolveDocumentLink(u,i),u.target&&s.push({label:aC(u.target,b.cwd),data:{target:u.target,location:Ze.create(o.uri,u.range)}}),l.push(u);return s}}});function abe(n,e){let t=n.indexOf(e);return t==-1?-1:n.length-t}var vm,a9=D(()=>{"use strict";qg();pe();qo();Wo();vm=class extends pi{constructor(t){super();this.listMap=t;this.name="lists";this.defaultAction="open";this.description="registered lists of coc.nvim";this.mru=new io("lists");this.addAction("open",async i=>{let{name:r}=i.data;await this.mru.add(r),setTimeout(()=>{this.nvim.command(`CocList ${r}`,!0)},50)})}async loadItems(t){let i=[],r=await this.mru.load();for(let o of this.listMap.values())o.name!="lists"&&i.push({label:[o.name,se(o.description)],data:{name:o.name,interactive:o.interactive,score:abe(r,o.name)}});return i.sort((o,s)=>s.data.score-o.data.score),Mr(this.alignColumns,i)}doHighlight(){let{nvim:t}=this;t.pauseNotification(),t.command("syntax match CocListsDesc /\\t.*$/ contained containedin=CocListsLine",!0),t.command("highlight default link CocListsDesc Comment",!0),t.resumeNotification(!1,!0)}}});function js(n){switch(n){case ke.File:return"File";case ke.Module:return"Module";case ke.Namespace:return"Namespace";case ke.Package:return"Package";case ke.Class:return"Class";case ke.Method:return"Method";case ke.Property:return"Property";case ke.Field:return"Field";case ke.Constructor:return"Constructor";case ke.Enum:return"Enum";case ke.Interface:return"Interface";case ke.Function:return"Function";case ke.Variable:return"Variable";case ke.Constant:return"Constant";case ke.String:return"String";case ke.Number:return"Number";case ke.Boolean:return"Boolean";case ke.Array:return"Array";case ke.Object:return"Object";case ke.Key:return"Key";case ke.Null:return"Null";case ke.EnumMember:return"EnumMember";case ke.Struct:return"Struct";case ke.Event:return"Event";case ke.Operator:return"Operator";case ke.TypeParameter:return"TypeParameter";default:return"Unknown"}}var wm=D(()=>{"use strict";ae()});function lbe(n,e,t){let i=[],r=(o,s=0)=>{o.sort((a,l)=>wa(a.selectionRange,l.selectionRange));for(let a of o){let l=js(a.kind),u=Ze.create(e,a.selectionRange);i.push({label:[`${"| ".repeat(s)}${a.name}`,`[${l}]`,`${a.range.start.line+1}`],filterText:ube(a,t),location:u,data:{kind:l}}),te(a.children)||r(a.children,s+1)}};return r(n),t&&(i=i.filter(o=>o.data.kind.toLowerCase().indexOf(t)==0)),i}function ube(n,e){return typeof e=="string"&&e.length>0?n.name:`${n.name}${js(n.kind)}`}async function cbe(n,e,t){if(!vo.sync("ctags",{nothrow:!0}))return[];let i=A.parse(n.uri),r=R.extname(i.fsPath),o="",s=await e.call("tempname"),a=`${s}.${r}`,l=R.dirname(s),u=await e.call("fnameescape",a);await Hg(u,n.getDocumentContent());try{o=await Ro(`ctags -f - --excmd=number --language-force=${n.filetype} ${u}`,{cwd:l},t)}catch{}return o.trim().length||(o=await Ro(`ctags -f - --excmd=number ${u}`,{cwd:l},t)),o=o.trim(),o?dbe(o,n):[]}function dbe(n,e){let t=n.split(/\r?\n/),i=[];for(let r of t){let o=r.split(" ");if(o.length<4)continue;let s=Number(o[2].replace(/;"$/,"")),l=e.getline(s-1).indexOf(o[0]),u=l==-1?0:l,c=M.create(s-1,u,s-1,u+o[0].length);i.push({label:`${o[0]} [${o[3]}] ${s}`,filterText:o[0],location:Ze.create(e.uri,c),data:{line:s}})}return i.sort((r,o)=>r.data.line-o.data.line),i}var xm,l9=D(()=>{"use strict";ae();Je();Te();Se();wm();at();ce();Pt();Nl();he();Wo();pm();xm=class extends ho{constructor(){super(...arguments);this.description="symbols of current document";this.name="outline";this.options=[{name:"-k, -kind KIND",hasValue:!0,description:"filter symbol by kind"}]}async loadItems(t,i){let r=b.getAttachedDocument(t.buffer.id),s=this.getConfig().get("ctagsFiletypes",[]),a,l=this.parseArguments(t.args),u=l.kind?l.kind.toString().toLowerCase():null;if(s.includes(r.filetype)||(a=await I.getDocumentSymbol(r.textDocument,i)),i.isCancellationRequested)return[];if(!a)return await cbe(r,this.nvim,i);if(te(a))return[];let c=lbe(a,r.uri,u);return Mr(this.alignColumns,c)}doHighlight(){let{nvim:t}=this;t.pauseNotification(),t.command("syntax match CocOutlineName /\\v\\s?[^\\t]+\\s/ contained containedin=CocOutlineLine",!0),t.command("syntax match CocOutlineIndentLine /\\v\\|/ contained containedin=CocOutlineLine,CocOutlineName",!0),t.command("syntax match CocOutlineKind /\\[\\w\\+\\]/ contained containedin=CocOutlineLine",!0),t.command("syntax match CocOutlineLine /\\d\\+$/ contained containedin=CocOutlineLine",!0),t.command("highlight default link CocOutlineName Normal",!0),t.command("highlight default link CocOutlineIndentLine Comment",!0),t.command("highlight default link CocOutlineKind Typedef",!0),t.command("highlight default link CocOutlineLine Comment",!0),t.resumeNotification(!1,!0)}}});function He(){return me()}var ci=D(()=>{"use strict";ot()});function W(n,e){return n[e]===void 0&&(n[e]={}),n[e]}var yu,go,lC,uC,vu,jr,Ie,ct=D(()=>{"use strict";$();Xe();he();ci();Ti();yu=class extends Ct{constructor(t){super();this.data=t}},go=class{constructor(e){this._client=e}sendRequest(e,t,i,r){return this._client.sendRequest(e,t,i).then(o=>i.isCancellationRequested||o==null?r??null:o,o=>this._client.handleFailedRequest(e,i,o,r??null))}};(e=>{function n(t){return t!=null&&it(t.fillClientCapabilities)&&it(t.initialize)&&it(t.dispose)&&(t.fillInitializeParams===void 0||it(t.fillInitializeParams))&&t.registrationType===void 0}e.is=n})(lC||(lC={}));(e=>{function n(t){let i=t;return i!=null&&it(i.fillClientCapabilities)&&it(i.initialize)&&it(i.dispose)&&(i.fillInitializeParams===void 0||it(i.fillInitializeParams))&&it(i.register)&&it(i.unregister)&&i.registrationType!==void 0}e.is=n})(uC||(uC={}));vu=class extends go{constructor(e){super(e)}getState(){let e=this.getDocumentSelectors(),t=0;for(let r of e){t++;for(let o of b.textDocuments)if(b.match(r,o)>0)return{kind:"document",id:this.registrationType.method,registrations:!0,matches:!0}}let i=t>0;return{kind:"document",id:this.registrationType.method,registrations:i,matches:!1}}},jr=class extends vu{constructor(t,i,r,o,s,a){super(t);this._event=i,this._type=r,this._middleware=o,this._createParams=s,this._selectorFilter=a,this._selectors=new Map,this._onNotificationSent=new p.Emitter}static textDocumentFilter(t,i){for(let r of t)if(b.match(r,i)>0)return!0;return!1}getDocumentSelectors(){return this._selectors.values()}register(t){!t.registerOptions.documentSelector||(this._listener||(this._listener=this._event(i=>{this.callback(i).catch(r=>{this._client.error(`Sending document notification ${this._type.method} failed.`,r)})})),this._selectors.set(t.id,t.registerOptions.documentSelector))}async callback(t){if(!this.matches(t))return;let i=async o=>{let s=this._createParams(o);await this._client.sendNotification(this._type,s).catch(),this.notificationSent(o,this._type,s)},r=this._client.middleware[this._middleware];return Promise.resolve(r?r(t,o=>i(o)):i(t))}matches(t){return!this._selectorFilter||this._selectorFilter(this._selectors.values(),t)}get onNotificationSent(){return this._onNotificationSent.event}notificationSent(t,i,r){this._onNotificationSent.fire({original:t,type:i,params:r})}unregister(t){this._selectors.delete(t)}dispose(){this._selectors.clear(),this._onNotificationSent.dispose(),this._listener&&(this._listener.dispose(),this._listener=void 0)}getProvider(t){for(let i of this.getDocumentSelectors())if(b.match(i,t)>0)return{send:r=>this.callback(r)}}},Ie=class extends vu{constructor(t,i){super(t);this._registrationType=i,this._registrations=new Map}*getDocumentSelectors(){for(let t of this._registrations.values()){let i=t.data.registerOptions.documentSelector;i!==null&&(yield i)}}get registrationType(){return this._registrationType}get registrationLength(){return this._registrations.size}register(t){if(!t.registerOptions.documentSelector)return;let i=this.registerLanguageProvider(t.registerOptions,t.id);this._registrations.set(t.id,{disposable:i[0],data:t,provider:i[1]})}unregister(t){let i=this._registrations.get(t);i!==void 0&&i.disposable.dispose()}dispose(){this._registrations.forEach(t=>{t.disposable.dispose()}),this._registrations.clear()}getRegistration(t,i){if(!i)return[void 0,void 0];if(_n(i)&&i===!0)return[He(),{documentSelector:t}];if(p.TextDocumentRegistrationOptions.is(i)){let r=p.StaticRegistrationOptions.hasId(i)?i.id:He(),o=i.documentSelector??t;return[r,Object.assign({},i,{documentSelector:o})]}return p.WorkDoneProgressOptions.is(i)?[p.StaticRegistrationOptions.hasId(i)?i.id:He(),Object.assign({},i,{documentSelector:t})]:[void 0,void 0]}getRegistrationOptions(t,i){if(!(!t||!i))return _n(i)&&i===!0?{documentSelector:t}:Object.assign({},i,{documentSelector:t})}getProvider(t){for(let i of this._registrations.values()){let r=i.data.registerOptions.documentSelector;if(r!==null&&b.match(r,t)>0)return i.provider}}getAllProviders(){let t=[];for(let i of this._registrations.values())t.push(i.provider);return t}}});var Ua,h1=D(()=>{"use strict";Je();Ti();Ua=class{constructor(e,t){if(typeof e!="string"&&(!e||!A.isUri(e)&&typeof e.uri!="string"))throw MD("base");if(typeof t!="string")throw MD("pattern");typeof e=="string"?this.baseUri=A.file(e):A.isUri(e)?this.baseUri=e:this.baseUri=A.parse(e.uri),this.pattern=t}toJSON(){return{pattern:this.pattern,baseUri:this.baseUri.toJSON()}}}});function hbe(n){return{uri:n.uri,languageId:n.languageId,version:n.version,text:n.getText()}}function u9(n){return{textDocument:hbe(n)}}function c9(n){let{baseUri:e,pattern:t}=n;return typeof e=="string"?new Ua(A.parse(e),t):new Ua(e,t)}function d9(n){return{textDocument:{uri:n.uri}}}function h9(n){return{textDocument:{uri:n.uri,version:n.version},contentChanges:[{text:n.getText()}]}}function g9(n){let{textDocument:e,contentChanges:t}=n;return{textDocument:{uri:e.uri,version:e.version},contentChanges:t.slice()}}function g1(n){return{textDocument:cC(n.document),reason:n.reason}}function cC(n){return{uri:n.uri,version:n.version}}function p9(n,e){let t={textDocument:cC(n)};return e&&(t.text=n.getText()),t}function Md(n){return n.toString()}function f9(n,e,t){return{textDocument:{uri:n.uri},position:e,context:ni(t,["option"])}}function qi(n,e){return{textDocument:{uri:n.uri},position:e}}function m9(n,e,t){return{textDocument:po(n),position:e,context:t}}function po(n){return{uri:n.uri}}function b9(n,e,t){return{textDocument:{uri:n.uri},position:e,context:{includeDeclaration:t.includeDeclaration}}}function y9(n){return{textDocument:{uri:n.uri}}}function v9(n){return{textDocument:{uri:n.uri}}}var oi=D(()=>{"use strict";Je();h1();Tr()});var dC,w9=D(()=>{"use strict";Te();$();ct();oi();dC=class extends Ie{constructor(e){super(e,p.CallHierarchyPrepareRequest.type)}fillClientCapabilities(e){let i=W(W(e,"textDocument"),"callHierarchy");i.dynamicRegistration=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.callHierarchyProvider);!i||!r||this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t={prepareCallHierarchy:(i,r,o)=>{let s=this._client,a=(u,c,d)=>{let h=qi(u,c);return this.sendRequest(p.CallHierarchyPrepareRequest.type,h,d)},l=s.middleware;return l.prepareCallHierarchy?l.prepareCallHierarchy(i,r,o,a):a(i,r,o)},provideCallHierarchyIncomingCalls:(i,r)=>{let o=this._client,s=(l,u)=>this.sendRequest(p.CallHierarchyIncomingCallsRequest.type,{item:l},u),a=o.middleware;return a.provideCallHierarchyIncomingCalls?a.provideCallHierarchyIncomingCalls(i,r,s):s(i,r)},provideCallHierarchyOutgoingCalls:(i,r)=>{let o=this._client,s=(l,u)=>this.sendRequest(p.CallHierarchyOutgoingCallsRequest.type,{item:l},u),a=o.middleware;return a.provideCallHierarchyOutgoingCalls?a.provideCallHierarchyOutgoingCalls(i,r,s):s(i,r)}};return[I.registerCallHierarchyProvider(e.documentSelector,t),t]}}});var hC,x9=D(()=>{"use strict";ae();kt();Te();$();ct();ci();hC=class extends Ie{constructor(t){super(t,p.CodeActionRequest.type);this.disposables=[]}fillClientCapabilities(t){let i=W(W(t,"textDocument"),"codeAction");i.dynamicRegistration=!0,i.isPreferredSupport=!0,i.disabledSupport=!0,i.dataSupport=!0,i.honorsChangeAnnotations=!1,i.resolveSupport={properties:["edit"]},i.codeActionLiteralSupport={codeActionKind:{valueSet:[Gt.Empty,Gt.QuickFix,Gt.Refactor,Gt.RefactorExtract,Gt.RefactorInline,Gt.RefactorRewrite,Gt.Source,Gt.SourceOrganizeImports]}}}initialize(t,i){let r=this.getRegistrationOptions(i,t.codeActionProvider);!r||this.register({id:He(),registerOptions:r})}registerLanguageProvider(t){let i=o=>{let s=this._client,a=(u,c)=>{let d={command:u,arguments:c};return s.sendRequest(p.ExecuteCommandRequest.type,d)},l=s.middleware;this.disposables.push(ie.registerCommand(o,(...u)=>l.executeCommand?l.executeCommand(o,u,a):a(o,u),null,!0))},r={provideCodeActions:(o,s,a,l)=>{let u=this._client,c=(h,g,f,m)=>{let y={textDocument:{uri:h.uri},range:g,context:f};return this.sendRequest(p.CodeActionRequest.type,y,m).then(w=>{if(!!w)return w.forEach(x=>{var P;let C=Ln.is(x)?x.command:(P=x.command)==null?void 0:P.command;C&&!ie.has(C)&&i(C)}),w})},d=u.middleware;return d.provideCodeActions?d.provideCodeActions(o,s,a,l,c):c(o,s,a,l)},resolveCodeAction:t.resolveProvider?(o,s)=>{let a=this._client.middleware,l=(u,c)=>this.sendRequest(p.CodeActionResolveRequest.type,u,c,u);return a.resolveCodeAction?a.resolveCodeAction(o,s,l):l(o,s)}:void 0};return[I.registerCodeActionProvider(t.documentSelector,r,this._client.id,t.codeActionKinds),r]}dispose(){this.disposables.forEach(t=>{t.dispose()}),this.disposables=[],super.dispose()}}});var gC,C9=D(()=>{"use strict";Te();$();ct();oi();ci();gC=class extends Ie{constructor(e){super(e,p.CodeLensRequest.type)}fillClientCapabilities(e){W(W(e,"textDocument"),"codeLens").dynamicRegistration=!0,W(W(e,"workspace"),"codeLens").refreshSupport=!0}initialize(e,t){this._client.onRequest(p.CodeLensRefreshRequest.type,async()=>{for(let o of this.getAllProviders())o.onDidChangeCodeLensEmitter.fire()});let r=this.getRegistrationOptions(t,e.codeLensProvider);!r||this.register({id:He(),registerOptions:r})}registerLanguageProvider(e){let t=new p.Emitter,i={onDidChangeCodeLenses:t.event,provideCodeLenses:(r,o)=>{let s=this._client,a=(u,c)=>this.sendRequest(p.CodeLensRequest.type,v9(u),c),l=s.middleware;return l.provideCodeLenses?l.provideCodeLenses(r,o,a):a(r,o)},resolveCodeLens:e.resolveProvider?(r,o)=>{let s=this._client,a=(u,c)=>this.sendRequest(p.CodeLensResolveRequest.type,u,c,u),l=s.middleware;return l.resolveCodeLens?l.resolveCodeLens(r,o,a):a(r,o)}:void 0};return[I.registerCodeLensProvider(e.documentSelector,i),{provider:i,onDidChangeCodeLensEmitter:t}]}}});var pC,S9=D(()=>{"use strict";Te();$();ct();pC=class extends Ie{constructor(e){super(e,p.DocumentColorRequest.type)}fillClientCapabilities(e){W(W(e,"textDocument"),"colorProvider").dynamicRegistration=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.colorProvider);!i||!r||this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t={provideColorPresentations:(i,r,o)=>{let s=this._client,a=(u,c,d)=>{let h={color:u,textDocument:{uri:c.document.uri},range:c.range};return this.sendRequest(p.ColorPresentationRequest.type,h,d)},l=s.middleware;return l.provideColorPresentations?l.provideColorPresentations(i,r,o,a):a(i,r,o)},provideDocumentColors:(i,r)=>{let o=this._client,s=(l,u)=>{let c={textDocument:{uri:l.uri}};return this.sendRequest(p.DocumentColorRequest.type,c,u)},a=o.middleware;return a.provideDocumentColors?a.provideDocumentColors(i,r,s):s(i,r)}};return[I.registerDocumentColorProvider(e.documentSelector,t),t]}}});var gbe,fC,D9=D(()=>{"use strict";ae();Te();$();ct();oi();ci();gbe=[ne.Text,ne.Method,ne.Function,ne.Constructor,ne.Field,ne.Variable,ne.Class,ne.Interface,ne.Module,ne.Property,ne.Unit,ne.Value,ne.Enum,ne.Keyword,ne.Snippet,ne.Color,ne.File,ne.Reference,ne.Folder,ne.EnumMember,ne.Constant,ne.Struct,ne.Event,ne.Operator,ne.TypeParameter],fC=class extends Ie{constructor(e){super(e,p.CompletionRequest.type)}fillClientCapabilities(e){let t=this._client.clientOptions.disableSnippetCompletion!==!0,i=W(W(e,"textDocument"),"completion");i.dynamicRegistration=!0,i.contextSupport=!0,i.completionItem={snippetSupport:t,commitCharactersSupport:!0,documentationFormat:this._client.supportedMarkupKind,deprecatedSupport:!0,preselectSupport:!0,insertReplaceSupport:!0,tagSupport:{valueSet:[rs.Deprecated]},resolveSupport:{properties:["documentation","detail","additionalTextEdits"]},labelDetailsSupport:!0,insertTextModeSupport:{valueSet:[vr.asIs,vr.adjustIndentation]}},i.completionItemKind={valueSet:gbe},i.insertTextMode=vr.adjustIndentation,i.completionList={itemDefaults:["commitCharacters","editRange","insertTextFormat","insertTextMode"]}}initialize(e,t){let i=this.getRegistrationOptions(t,e.completionProvider);!i||this.register({id:He(),registerOptions:i})}registerLanguageProvider(e,t){let i=e.triggerCharacters||[],r=e.allCommitCharacters||[],o={provideCompletionItems:(l,u,c,d)=>{let h=this._client.middleware,g=(f,m,y,w)=>this.sendRequest(p.CompletionRequest.type,f9(f,m,y),w,[]);return h.provideCompletionItem?h.provideCompletionItem(l,u,d,c,g):g(l,u,d,c)},resolveCompletionItem:e.resolveProvider?(l,u)=>{let c=this._client.middleware,d=(h,g)=>this.sendRequest(p.CompletionResolveRequest.type,h,g,h);return c.resolveCompletionItem?c.resolveCompletionItem(l,u,d):d(l,u)}:void 0},s=this._client.id+(this.registrationLength==0?"":"-"+t);return[I.registerCompletionItemProvider(s,"LS",e.documentSelector,o,i,e.priority,r),o]}}});var mC,wu,T9=D(()=>{"use strict";ba();Xe();$();he();ct();ci();mC=class{constructor(e){this._client=e}get method(){return p.ConfigurationRequest.method}fillClientCapabilities(e){W(e,"workspace").configuration=!0}getState(){return{kind:"static"}}initialize(){let e=this._client,{configuredSection:t}=e;e.onRequest(p.ConfigurationRequest.type,(i,r)=>{let o=a=>{let l=[];for(let u of a.items){let c=t?t+(u.section?`.${u.section}`:""):u.section;l.push(this.getConfiguration(u.scopeUri,c))}return l},s=e.middleware.workspace;return s!=null&&s.configuration?s.configuration(i,r,o):o(i,r)})}getConfiguration(e,t){let i=null;if(t){let r=t.lastIndexOf(".");if(r===-1)i=Hc(b.getConfiguration(void 0,e).get(t));else{let o=b.getConfiguration(t.substr(0,r),e);i=Hc(o.get(t.substr(r+1)))}}else{let r=b.getConfiguration(t,e);i={};for(let o of Object.keys(r))r.has(o)&&(i[o]=Hc(r.get(o)))}return i??null}dispose(){}},wu=class{constructor(e){this._client=e;this._listeners=new Map}getState(){return{kind:"workspace",id:this.registrationType.method,registrations:this._listeners.size>0}}get registrationType(){return p.DidChangeConfigurationNotification.type}fillClientCapabilities(e){W(W(e,"workspace"),"didChangeConfiguration").dynamicRegistration=!0}initialize(){var t;let e=(t=this._client.clientOptions.synchronize)==null?void 0:t.configurationSection;if(e!==void 0){let i=this.configuredUID=He();this.register({id:i,registerOptions:{section:e}})}}register(e){if(this._client.configuredSection&&e.id!==this.configuredUID)return;let{section:t}=e.registerOptions,i=b.onDidChangeConfiguration(r=>{this.onDidChangeConfiguration(t,r)});this._listeners.set(e.id,i),t!==void 0&&this.onDidChangeConfiguration(t,void 0)}unregister(e){let t=this._listeners.get(e);t&&(this._listeners.delete(e),t.dispose())}dispose(){for(let e of this._listeners.values())e.dispose();this._listeners.clear()}onDidChangeConfiguration(e,t){var l;let{configuredSection:i}=this._client,r;if(Ue(e)?r=[e]:r=e,r!=null&&t!=null&&!r.map(d=>d.startsWith("languageserver.")?"languageserver":d).some(d=>t.affectsConfiguration(d)))return;let o=u=>{if(u==null)return this._client.sendNotification(p.DidChangeConfigurationNotification.type,{settings:null});let c=this._client.clientOptions.workspaceFolder,d=i?wu.getConfiguredSettings(i,c):wu.extractSettingsInformation(u,c);return this._client.sendNotification(p.DidChangeConfigurationNotification.type,{settings:d})},s=(l=this._client.middleware.workspace)==null?void 0:l.didChangeConfiguration;(s?Promise.resolve(s(r,o)):o(r)).catch(u=>{this._client.error(`Sending notification ${p.DidChangeConfigurationNotification.type.method} failed`,u)})}static getConfiguredSettings(e,t){let i=9,r=b.getConfiguration(e.slice(0,-i),t);return _Z(r.get("settings",{}))}static extractSettingsInformation(e,t){function i(o,s){let a=o;for(let l=0;l=0?l=b.getConfiguration(s.substr(0,a),t).get(s.substr(a+1)):l=b.getConfiguration(s,t);let u=e[o].split(".");i(r,u)[u[u.length-1]]=l}return r}}});var bC,k9=D(()=>{"use strict";Te();$();ct();oi();bC=class extends Ie{constructor(e){super(e,p.DeclarationRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"declaration");t.dynamicRegistration=!0,t.linkSupport=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.declarationProvider);!i||!r||this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t={provideDeclaration:(i,r,o)=>{let s=this._client,a=(u,c,d)=>this.sendRequest(p.DeclarationRequest.type,qi(u,c),d),l=s.middleware;return l.provideDeclaration?l.provideDeclaration(i,r,o,a):a(i,r,o)}};return[I.registerDeclarationProvider(e.documentSelector,t),t]}}});var yC,P9=D(()=>{"use strict";Te();$();ct();oi();ci();yC=class extends Ie{constructor(e){super(e,p.DefinitionRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"definition");t.dynamicRegistration=!0,t.linkSupport=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.definitionProvider);!i||this.register({id:He(),registerOptions:i})}registerLanguageProvider(e){let t={provideDefinition:(i,r,o)=>{let s=this._client,a=(u,c,d)=>this.sendRequest(p.DefinitionRequest.type,qi(u,c),d),l=s.middleware;return l.provideDefinition?l.provideDefinition(i,r,o,a):a(i,r,o)}};return[I.registerDefinitionProvider(e.documentSelector,t),t]}}});var R9,p1,f1,m1,b1,vC,_9=D(()=>{"use strict";ce();ot();Je();Te();Ti();RR();$();We();he();ct();ee();R9=ge(3e3,10),p1=class{constructor(){this.documentPullStates=new Map,this.workspacePullStates=new Map}track(e,t,i){let r=e===1?this.documentPullStates:this.workspacePullStates,[o,s,a]=t instanceof A?[t.toString(),t,i]:[t.uri.toString(),A.parse(t.uri),t.version],l=r.get(o);return l===void 0&&(l={document:s,pulledVersion:a,resultId:void 0},r.set(o,l)),l}update(e,t,i,r){let o=e===1?this.documentPullStates:this.workspacePullStates,[s,a,l,u]=t instanceof A?[t.toString(),t,i,r]:[t.uri,A.parse(t.uri),t.version,i],c=o.get(s);c===void 0?(c={document:a,pulledVersion:l,resultId:u},o.set(s,c)):(c.pulledVersion=l,c.resultId=u)}unTrack(e,t){let i=t instanceof A?t.toString():t.uri;(e===1?this.documentPullStates:this.workspacePullStates).delete(i)}tracks(e,t){let i=t instanceof A?t.toString():t.uri;return(e===1?this.documentPullStates:this.workspacePullStates).has(i)}trackingDocuments(){return Array.from(this.documentPullStates.keys())}getResultId(e,t){var o;let i=t instanceof A?t.toString():t.uri;return(o=(e===1?this.documentPullStates:this.workspacePullStates).get(i))==null?void 0:o.resultId}getAllResultIds(){let e=[];for(let[t,i]of this.workspacePullStates)this.documentPullStates.has(t)&&(i=this.documentPullStates.get(t)),i.resultId!==void 0&&e.push({uri:t,value:i.resultId});return e}},f1=class extends go{constructor(t,i){var r;super(t);this.client=t,this.options=i,this.enableWorkspace=i.workspaceDiagnostics&&((r=this.client.clientOptions.diagnosticPullOptions)==null?void 0:r.workspace)!==!1,this.isDisposed=!1,this.onDidChangeDiagnosticsEmitter=new p.Emitter,this.provider=this.createProvider(),this.diagnostics=I.createDiagnosticCollection(i.identifier?i.identifier:t.id),this.openRequests=new Map,this.documentStates=new p1,this.workspaceErrorCounter=0}knows(t,i){return this.documentStates.tracks(t,i)}trackingDocuments(){return this.documentStates.trackingDocuments()}forget(t,i){this.documentStates.unTrack(t,i)}pull(t,i){this.pullAsync(t).then(()=>{i&&i()},r=>{this.client.error(`Document pull failed for text document ${t.uri}`,r)})}async pullAsync(t){if(this.isDisposed)return;let i=t.uri,r=t.version,o=this.openRequests.get(i),s=this.documentStates.track(1,t);if(o===void 0){let a=new p.CancellationTokenSource;this.openRequests.set(i,{state:"open",document:t,version:r,tokenSource:a});let l,u;try{l=await this.provider.provideDiagnostics(t,s.resultId,a.token)??{kind:p.DocumentDiagnosticReportKind.Full,items:[]}}catch(d){if(d instanceof yu&&d.data&&p.DiagnosticServerCancellationData.is(d.data)&&d.data.retriggerRequest===!1&&(u={state:"drop",document:t}),u===void 0&&d instanceof Ct)u={state:"reschedule",document:t};else throw d}if(u=u??this.openRequests.get(i),u===void 0){this.client.error(`Lost request state in diagnostic pull model. Clearing diagnostics for ${i}`),this.diagnostics.delete(i);return}if(this.openRequests.delete(i),!k.visibleTextEditors.some(d=>d.document.uri===i)){this.documentStates.unTrack(1,t);return}if(u.state==="drop")return;l!==void 0&&(l.kind===p.DocumentDiagnosticReportKind.Full&&this.diagnostics.set(i,l.items),s.pulledVersion=r,s.resultId=l.resultId),u.state==="reschedule"&&this.pull(t)}else o.state==="open"?(o.tokenSource.cancel(),this.openRequests.set(i,{state:"reschedule",document:o.document})):o.state==="drop"&&this.openRequests.set(i,{state:"reschedule",document:o.document})}forgetDocument(t){let i=t.uri,r=this.openRequests.get(i);this.enableWorkspace?r!==void 0?this.openRequests.set(i,{state:"reschedule",document:t}):this.pull(t,()=>{this.forget(1,t)}):(r!==void 0&&(r.state==="open"&&r.tokenSource.cancel(),this.openRequests.delete(i)),this.diagnostics.delete(i.toString()),this.forget(1,t))}pullWorkspace(){!this.enableWorkspace||this.pullWorkspaceAsync().then(()=>{this.workspaceTimeout=(0,p.RAL)().timer.setTimeout(()=>{this.pullWorkspace()},R9)},t=>{!(t instanceof yu)&&!p.DiagnosticServerCancellationData.is(t.data)&&(this.client.error("Workspace diagnostic pull failed.",t),this.workspaceErrorCounter++),this.workspaceErrorCounter<=5&&(this.workspaceTimeout=(0,p.RAL)().timer.setTimeout(()=>{this.pullWorkspace()},R9))})}async pullWorkspaceAsync(){if(!this.provider.provideWorkspaceDiagnostics)return;this.workspaceCancellation!==void 0&&(this.workspaceCancellation.cancel(),this.workspaceCancellation=void 0),this.workspaceCancellation=new p.CancellationTokenSource;let t=this.documentStates.getAllResultIds();await this.provider.provideWorkspaceDiagnostics(t,this.workspaceCancellation.token,i=>{if(!(!i||this.isDisposed))for(let r of i.items)r.kind===p.DocumentDiagnosticReportKind.Full&&(this.documentStates.tracks(1,A.parse(r.uri))||this.diagnostics.set(r.uri.toString(),r.items)),this.documentStates.update(2,A.parse(r.uri),r.version??void 0,r.resultId)})}createProvider(){let t={onDidChangeDiagnostics:this.onDidChangeDiagnosticsEmitter.event,provideDiagnostics:(i,r,o)=>{let s=this.client.middleware,a=(l,u,c)=>{let d=l instanceof A?l.toString():l.uri,h={identifier:this.options.identifier,textDocument:{uri:d},previousResultId:u};return this.sendRequest(p.DocumentDiagnosticRequest.type,h,c,{kind:p.DocumentDiagnosticReportKind.Full,items:[]}).then(async g=>g==null||this.isDisposed?{kind:p.DocumentDiagnosticReportKind.Full,items:[]}:(s.handleDiagnostics&&g.kind==p.DocumentDiagnosticReportKind.Full&&s.handleDiagnostics(d,g.items,(f,m)=>{g.items=m}),g))};return s.provideDiagnostics?s.provideDiagnostics(i,r,o,a):a(i,r,o)}};return this.options.workspaceDiagnostics&&(t.provideWorkspaceDiagnostics=(i,r,o)=>{let s=(l,u)=>{let c=me(),d=this.client.onProgress(p.WorkspaceDiagnosticRequest.partialResult,c,g=>{if(g==null){o(null);return}o(g)}),h={identifier:this.options.identifier,previousResultIds:l,partialResultToken:c};return this.sendRequest(p.WorkspaceDiagnosticRequest.type,h,u,{items:[]}).then(async g=>(o(g),{items:[]})).finally(()=>{d.dispose()})},a=this.client.middleware;return a.provideWorkspaceDiagnostics?a.provideWorkspaceDiagnostics(i,r,o,s):s(i,r,o)}),t}dispose(){var t,i;this.isDisposed=!0,(t=this.workspaceCancellation)==null||t.cancel(),(i=this.workspaceTimeout)==null||i.dispose();for(let r of this.openRequests.values())r.state==="open"&&r.tokenSource.cancel();this.openRequests.clear()}},m1=class{constructor(e){this.diagnosticRequestor=e,this.documents=new Wp}add(e){let t=e.uri;this.documents.has(t)||(this.documents.set(t,e,2),this.trigger())}remove(e){var i;let t=e.uri;this.documents.has(t)&&(this.documents.delete(t),this.diagnosticRequestor.pull(e)),this.documents.size===0?this.stop():e.uri===((i=this.endDocument)==null?void 0:i.uri)&&(this.endDocument=this.documents.last)}trigger(){if(this.intervalHandle!==void 0){this.endDocument=this.documents.last;return}this.endDocument=this.documents.last,this.intervalHandle=(0,p.RAL)().timer.setInterval(()=>{let e=this.documents.first;if(e!==void 0){let t=e.uri;this.diagnosticRequestor.pull(e),this.documents.set(t,e,2),e===this.endDocument&&this.stop()}},200)}dispose(){this.stop(),this.documents.clear()}stop(){var e;(e=this.intervalHandle)==null||e.dispose(),this.intervalHandle=void 0,this.endDocument=void 0}},b1=class{constructor(e,t){var h;let i=e.clientOptions.diagnosticPullOptions,r=t.documentSelector,o=[],s=i.ignored??[],a=g=>!(b.match(r,g)<=0||!k.visibleTextEditors.some(m=>m.document.uri===g.uri)||s.length>0&&s.some(m=>si(A.parse(g.uri).fsPath,m,{dot:!0})));this.diagnosticRequestor=new f1(e,t),this.backgroundScheduler=new m1(this.diagnosticRequestor);let l=g=>{var f;!a(g)||!t.interFileDependencies||((f=this.activeTextDocument)==null?void 0:f.uri)===g.uri||this.backgroundScheduler.add(g)};this.activeTextDocument=(h=k.activeTextEditor)==null?void 0:h.document.textDocument,k.onDidChangeActiveTextEditor(g=>{let f=this.activeTextDocument,m=this.activeTextDocument=g==null?void 0:g.document.textDocument;f!==void 0&&l(f),m!=null&&this.backgroundScheduler.remove(m)},null,o);let u=e.getFeature(p.DidOpenTextDocumentNotification.method);o.push(u.onNotificationSent(g=>{let f=g.original;a(f)&&this.diagnosticRequestor.pull(f,()=>{l(f)})}));let c=(g,f)=>!(i.filter&&i.filter(g,f)||!this.diagnosticRequestor.knows(1,g));if(i.onChange===!0){let g=e.getFeature(p.DidChangeTextDocumentNotification.method);o.push(g.onNotificationSent(async f=>{let m=b.getDocument(f.original.bufnr).textDocument;f.original.contentChanges.length!=0&&c(m,"onType")&&this.diagnosticRequestor.pull(m,()=>{this.backgroundScheduler.trigger()})}))}if(i.onSave===!0){let g=e.getFeature(p.DidSaveTextDocumentNotification.method);o.push(g.onNotificationSent(f=>{let m=f.original;c(m,"onSave")&&this.diagnosticRequestor.pull(f.original,()=>{this.backgroundScheduler.trigger()})}))}let d=e.getFeature(p.DidCloseTextDocumentNotification.method);o.push(d.onNotificationSent(g=>{this.cleanUpDocument(g.original)})),this.diagnosticRequestor.onDidChangeDiagnosticsEmitter.event(()=>{for(let g of b.textDocuments)a(g)&&this.diagnosticRequestor.pull(g)}),k.onDidChangeVisibleTextEditors(g=>{let f=new Set,m=this.diagnosticRequestor.trackingDocuments();g.forEach(y=>{let{uri:w,textDocument:x}=y.document;f.has(w)||(f.add(w),a(x)&&!m.includes(w)&&this.diagnosticRequestor.pull(x,()=>{l(x)}))}),m.forEach(y=>{if(f.has(y))return;let w=b.getDocument(y);w&&w.attached&&this.cleanUpDocument(w.textDocument)})},null,o),t.workspaceDiagnostics===!0&&t.identifier!=="da348dc5-c30a-4515-9d98-31ff3be38d14"&&this.diagnosticRequestor.pullWorkspace(),this.disposable=p.Disposable.create(()=>[...o,this.backgroundScheduler,this.diagnosticRequestor].forEach(g=>g.dispose()))}get onDidChangeDiagnosticsEmitter(){return this.diagnosticRequestor.onDidChangeDiagnosticsEmitter}get diagnostics(){return this.diagnosticRequestor.provider}knows(e,t){return this.diagnosticRequestor.knows(e,t)}cleanUpDocument(e){this.diagnosticRequestor.knows(1,e)&&(this.diagnosticRequestor.forgetDocument(e),this.backgroundScheduler.remove(e))}},vC=class extends Ie{constructor(e){super(e,p.DocumentDiagnosticRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"diagnostic");t.dynamicRegistration=!0,t.relatedDocumentSupport=!0,W(W(e,"workspace"),"diagnostics").refreshSupport=!0}initialize(e,t){let i=this._client,[r,o]=this.getRegistration(t,e.diagnosticProvider);!r||!o||(i.onRequest(p.DiagnosticRefreshRequest.type,async()=>{for(let s of this.getAllProviders())s.onDidChangeDiagnosticsEmitter.fire()}),this.register({id:r,registerOptions:o}))}registerLanguageProvider(e){let t=new b1(this._client,e);return[t.disposable,t]}}});var wC,E9=D(()=>{"use strict";Te();$();ct();oi();ci();wC=class extends Ie{constructor(e){super(e,p.DocumentHighlightRequest.type)}fillClientCapabilities(e){W(W(e,"textDocument"),"documentHighlight").dynamicRegistration=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentHighlightProvider);!i||this.register({id:He(),registerOptions:i})}registerLanguageProvider(e){let t={provideDocumentHighlights:(i,r,o)=>{let s=this._client,a=(u,c,d)=>this.sendRequest(p.DocumentHighlightRequest.type,qi(u,c),d),l=s.middleware;return l.provideDocumentHighlights?l.provideDocumentHighlights(i,r,o,a):a(i,r,o)}};return[I.registerDocumentHighlightProvider(e.documentSelector,t),t]}}});var xC,I9=D(()=>{"use strict";Te();$();ct();ci();xC=class extends Ie{constructor(e){super(e,p.DocumentLinkRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"documentLink");t.dynamicRegistration=!0,t.tooltipSupport=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentLinkProvider);!i||this.register({id:He(),registerOptions:i})}registerLanguageProvider(e){let t={provideDocumentLinks:(i,r)=>{let o=this._client,s=(l,u)=>this.sendRequest(p.DocumentLinkRequest.type,{textDocument:{uri:l.uri}},u),a=o.middleware;return a.provideDocumentLinks?a.provideDocumentLinks(i,r,s):s(i,r)},resolveDocumentLink:e.resolveProvider?(i,r)=>{let o=this._client,s=(l,u)=>this.sendRequest(p.DocumentLinkResolveRequest.type,l,u,l),a=o.middleware;return a.resolveDocumentLink?a.resolveDocumentLink(i,r,s):s(i,r)}:void 0};return[I.registerDocumentLinkProvider(e.documentSelector,t),t]}}});var y1,v1,CC,w1=D(()=>{"use strict";ae();Te();$();ct();oi();ci();y1=[ke.File,ke.Module,ke.Namespace,ke.Package,ke.Class,ke.Method,ke.Property,ke.Field,ke.Constructor,ke.Enum,ke.Interface,ke.Function,ke.Variable,ke.Constant,ke.String,ke.Number,ke.Boolean,ke.Array,ke.Object,ke.Key,ke.Null,ke.EnumMember,ke.Struct,ke.Event,ke.Operator,ke.TypeParameter],v1=[Ui.Deprecated],CC=class extends Ie{constructor(e){super(e,p.DocumentSymbolRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"documentSymbol");t.dynamicRegistration=!0,t.symbolKind={valueSet:y1},t.hierarchicalDocumentSymbolSupport=!0,t.tagSupport={valueSet:v1},t.labelSupport=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentSymbolProvider);!i||this.register({id:He(),registerOptions:i})}registerLanguageProvider(e){let t={meta:e.label?{label:e.label}:void 0,provideDocumentSymbols:(i,r)=>{let o=this._client,s=(l,u)=>this.sendRequest(p.DocumentSymbolRequest.type,y9(l),u),a=o.middleware;return a.provideDocumentSymbols?a.provideDocumentSymbols(i,r,s):s(i,r)}};return[I.registerDocumentSymbolProvider(e.documentSelector,t),t]}}});var SC,L9=D(()=>{"use strict";$();ct();kt();ci();SC=class extends go{constructor(t){super(t);this._commands=new Map}getState(){return{kind:"workspace",id:this.registrationType.method,registrations:this._commands.size>0}}get registrationType(){return p.ExecuteCommandRequest.type}fillClientCapabilities(t){W(W(t,"workspace"),"executeCommand").dynamicRegistration=!0}initialize(t){!t.executeCommandProvider||this.register({id:He(),registerOptions:Object.assign({},t.executeCommandProvider)})}register(t){let r=this._client.middleware,o=(s,a)=>{let l={command:s,arguments:a};return this.sendRequest(p.ExecuteCommandRequest.type,l,p.CancellationToken.None)};if(t.registerOptions.commands){let s=[];for(let a of t.registerOptions.commands)s.push(ie.registerCommand(a,(...l)=>r.executeCommand?r.executeCommand(a,l,o):o(a,l),null,!0));this._commands.set(t.id,s)}}unregister(t){let i=this._commands.get(t);i&&i.forEach(r=>r.dispose())}dispose(){this._commands.forEach(t=>{t.forEach(i=>i.dispose())}),this._commands.clear()}}});function pbe(n,e){return n[e]}function F9(n,e,t){n[e]=t}function EC(n){return{files:n.files.map(e=>({uri:e.toString()}))}}function M9(n){return{files:n.files.map(e=>({oldUri:e.oldUri.toString(),newUri:e.newUri.toString()}))}}var jd,Cm,DC,TC,kC,Sm,PC,RC,_C,j9=D(()=>{"use strict";ce();at();$();he();ct();ci();jd=class extends go{constructor(t,i,r,o,s){super(t);this._filters=new Map;this._event=i,this._registrationType=r,this._clientCapability=o,this._serverCapability=s}getState(){return{kind:"workspace",id:this._registrationType.method,registrations:this._filters.size>0}}get registrationType(){return this._registrationType}fillClientCapabilities(t){let i=W(W(t,"workspace"),"fileOperations");F9(i,"dynamicRegistration",!0),F9(i,this._clientCapability,!0)}initialize(t){var o;let i=(o=t.workspace)==null?void 0:o.fileOperations,r=i!==void 0?pbe(i,this._serverCapability):void 0;if((r==null?void 0:r.filters)!==void 0)try{this.register({id:He(),registerOptions:{filters:r.filters}})}catch(s){this._client.warn(`Ignoring invalid glob pattern for ${this._serverCapability} registration: ${s}`)}}register(t){this._listener||(this._listener=this._event(this.send,this));let i=t.registerOptions.filters.map(r=>{let o=new si.Minimatch(r.pattern.glob,jd.asMinimatchOptions(r.pattern.options));if(!o.makeRe())throw new Error(`Invalid pattern ${r.pattern.glob}!`);return{scheme:r.scheme,matcher:o,kind:r.pattern.matches}});this._filters.set(t.id,i)}unregister(t){this._filters.delete(t)}dispose(){this._filters.clear(),this._listener&&(this._listener.dispose(),this._listener=void 0)}async filter(t,i){let r=await Promise.all(t.files.map(async s=>{let a=i(s),l=a.fsPath.replace(/\\/g,"/");for(let u of this._filters.values())for(let c of u)if(!(c.scheme!==void 0&&c.scheme!==a.scheme)){if(c.matcher.match(l)){if(c.kind===void 0)return!0;let d=await vk(a.fsPath);if(d===void 0)return this._client.error(`Failed to determine file type for ${a.toString()}.`),!0;if(d===1&&c.kind===p.FileOperationPatternKind.file||d===2&&c.kind===p.FileOperationPatternKind.folder)return!0}else if(c.kind===p.FileOperationPatternKind.folder&&await vk(a.fsPath)===2&&c.matcher.match(`${l}/`))return!0}return!1})),o=t.files.filter((s,a)=>r[a]);return{...t,files:o}}static asMinimatchOptions(t){if(t!==void 0&&t.ignoreCase===!0)return{nocase:!0}}},Cm=class extends jd{constructor(t,i,r,o,s,a,l){super(t,i,r,o,s);this._notificationType=r,this._accessUri=a,this._createParams=l}async send(t){let i=await this.filter(t,this._accessUri);if(i.files.length){let r=async s=>{if(!!this._client.isRunning())return this._client.sendNotification(this._notificationType,this._createParams(s))},o=this.doSend(i,r);o&&await o.catch(s=>{this._client.error(`Sending notification ${this.registrationType.method} failed`,s)})}}},DC=class extends Cm{constructor(e){super(e,b.onDidCreateFiles,p.DidCreateFilesNotification.type,"didCreate","didCreate",t=>t,t=>EC(t))}doSend(e,t){let i=this._client.middleware.workspace;return i!=null&&i.didCreateFiles?i.didCreateFiles(e,t):t(e)}},TC=class extends Cm{constructor(e){super(e,b.onDidRenameFiles,p.DidRenameFilesNotification.type,"didRename","didRename",t=>t.oldUri,t=>M9(t))}doSend(e,t){let i=this._client.middleware.workspace;return i!=null&&i.didRenameFiles?i.didRenameFiles(e,t):t(e)}},kC=class extends Cm{constructor(e){super(e,b.onDidDeleteFiles,p.DidDeleteFilesNotification.type,"didDelete","didDelete",t=>t,t=>EC(t))}doSend(e,t){let i=this._client.middleware.workspace;return i!=null&&i.didDeleteFiles?i.didDeleteFiles(e,t):t(e)}},Sm=class extends jd{constructor(t,i,r,o,s,a,l){super(t,i,r,o,s);this._requestType=r,this._accessUri=a,this._createParams=l}async send(t){let i=this.waitUntil(t);t.waitUntil(i)}async waitUntil(t){let i=await this.filter(t,this._accessUri);if(i.files.length){let r=o=>this.sendRequest(this._requestType,this._createParams(o),p.CancellationToken.None);return this.doSend(i,r)}else return}},PC=class extends Sm{constructor(e){super(e,b.onWillCreateFiles,p.WillCreateFilesRequest.type,"willCreate","willCreate",t=>t,t=>EC(t))}doSend(e,t){let i=this._client.middleware.workspace;return i!=null&&i.willCreateFiles?i.willCreateFiles(e,t):t(e)}},RC=class extends Sm{constructor(e){super(e,b.onWillRenameFiles,p.WillRenameFilesRequest.type,"willRename","willRename",t=>t.oldUri,t=>M9(t))}doSend(e,t){let i=this._client.middleware.workspace;return i!=null&&i.willRenameFiles?i.willRenameFiles(e,t):t(e)}},_C=class extends Sm{constructor(e){super(e,b.onWillDeleteFiles,p.WillDeleteFilesRequest.type,"willDelete","willDelete",t=>t,t=>EC(t))}doSend(e,t){let i=this._client.middleware.workspace;return i!=null&&i.willDeleteFiles?i.willDeleteFiles(e,t):t(e)}}});var fbe,IC,O9=D(()=>{"use strict";ee();Xe();ce();$();he();ct();oi();ci();fbe=ge(200,20),IC=class{constructor(e){this._client=e;this._watchers=new Map;this._fileEventsMap=new Map;this.debouncedFileNotify=mt(()=>{this._notifyFileEvent()},fbe)}async _notifyFileEvent(){let e=this._fileEventsMap;e.size!=0&&(await this._client.forceDocumentSync(),this._client.sendNotification(p.DidChangeWatchedFilesNotification.type,{changes:Array.from(e.values())}).catch(t=>{this._client.error("Notify file events failed.",t)}),e.clear())}notifyFileEvent(e){let t=this;function i(o){t._fileEventsMap.set(o.uri,o),t.debouncedFileNotify()}let r=this._client.middleware.workspace;r!=null&&r.didChangeWatchedFile?r.didChangeWatchedFile(e,i):i(e)}getState(){return{kind:"workspace",id:this.registrationType.method,registrations:this._watchers.size>0}}get registrationType(){return p.DidChangeWatchedFilesNotification.type}fillClientCapabilities(e){W(W(e,"workspace"),"didChangeWatchedFiles").dynamicRegistration=!0,W(W(e,"workspace"),"didChangeWatchedFiles").relativePatternSupport=!0}initialize(e,t){var s;let i=(s=this._client.clientOptions.synchronize)==null?void 0:s.fileEvents;if(!i)return;let r=Array.isArray(i)?i:[i],o=[];for(let a of r)o.push(a),this.hookListeners(a,!a.ignoreCreateEvents,!a.ignoreChangeEvents,!a.ignoreDeleteEvents,o);this._watchers.set(He(),o)}register(e){if(!Array.isArray(e.registerOptions.watchers))return;let t=[];for(let i of e.registerOptions.watchers){let r;if(Ue(i.globPattern))r=i.globPattern;else if(p.RelativePattern.is(i.globPattern))r=c9(i.globPattern);else continue;let o=!0,s=!0,a=!0;i.kind!=null&&(o=(i.kind&p.WatchKind.Create)!==0,s=(i.kind&p.WatchKind.Change)!==0,a=(i.kind&p.WatchKind.Delete)!==0);let l=b.createFileSystemWatcher(r,!o,!s,!a);this.hookListeners(l,o,s,a,t),t.push(l)}this._watchers.set(e.id,t)}hookListeners(e,t,i,r,o){t&&e.onDidCreate(s=>this.notifyFileEvent({uri:Md(s),type:p.FileChangeType.Created}),null,o),i&&e.onDidChange(s=>this.notifyFileEvent({uri:Md(s),type:p.FileChangeType.Changed}),null,o),r&&e.onDidDelete(s=>this.notifyFileEvent({uri:Md(s),type:p.FileChangeType.Deleted}),null,o)}unregister(e){let t=this._watchers.get(e);if(t){for(let i of t)i.dispose();this._watchers.delete(e)}}dispose(){this._fileEventsMap.clear(),this.debouncedFileNotify.clear(),this._watchers.forEach(e=>{for(let t of e)t.dispose()}),this._watchers.clear()}}});var LC,A9=D(()=>{"use strict";Te();$();ct();LC=class extends Ie{constructor(e){super(e,p.FoldingRangeRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"foldingRange");t.dynamicRegistration=!0,t.rangeLimit=5e3,t.lineFoldingOnly=!0,t.foldingRangeKind={valueSet:[p.FoldingRangeKind.Comment,p.FoldingRangeKind.Imports,p.FoldingRangeKind.Region]},t.foldingRange={collapsedText:!1}}initialize(e,t){let[i,r]=this.getRegistration(t,e.foldingRangeProvider);!i||!r||this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t={provideFoldingRanges:(i,r,o)=>{let s=this._client,a=(u,c,d)=>{let h={textDocument:{uri:u.uri}};return this.sendRequest(p.FoldingRangeRequest.type,h,d)},l=s.middleware;return l.provideFoldingRanges?l.provideFoldingRanges(i,r,o,a):a(i,r,o)}};return[I.registerFoldingRangeProvider(e.documentSelector,t),t]}}});var FC,MC,jC,N9=D(()=>{"use strict";Te();$();ct();oi();ci();FC=class extends Ie{constructor(e){super(e,p.DocumentFormattingRequest.type)}fillClientCapabilities(e){W(W(e,"textDocument"),"formatting").dynamicRegistration=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentFormattingProvider);!i||this.register({id:He(),registerOptions:i})}registerLanguageProvider(e){let t={provideDocumentFormattingEdits:(i,r,o)=>{let s=this._client,a=(u,c,d)=>{let h={textDocument:{uri:u.uri},options:c};return this.sendRequest(p.DocumentFormattingRequest.type,h,d)},l=s.middleware;return l.provideDocumentFormattingEdits?l.provideDocumentFormattingEdits(i,r,o,a):a(i,r,o)}};return[I.registerDocumentFormatProvider(e.documentSelector,t,this._client.clientOptions.formatterPriority),t]}},MC=class extends Ie{constructor(e){super(e,p.DocumentRangeFormattingRequest.type)}fillClientCapabilities(e){W(W(e,"textDocument"),"rangeFormatting").dynamicRegistration=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentRangeFormattingProvider);!i||this.register({id:He(),registerOptions:i})}registerLanguageProvider(e){let t={provideDocumentRangeFormattingEdits:(i,r,o,s)=>{let a=this._client,l=(c,d,h,g)=>{let f={textDocument:{uri:c.uri},range:d,options:h};return this.sendRequest(p.DocumentRangeFormattingRequest.type,f,g)},u=a.middleware;return u.provideDocumentRangeFormattingEdits?u.provideDocumentRangeFormattingEdits(i,r,o,s,l):l(i,r,o,s)}};return[I.registerDocumentRangeFormatProvider(e.documentSelector,t),t]}},jC=class extends Ie{constructor(e){super(e,p.DocumentOnTypeFormattingRequest.type)}fillClientCapabilities(e){W(W(e,"textDocument"),"onTypeFormatting").dynamicRegistration=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentOnTypeFormattingProvider);!i||this.register({id:He(),registerOptions:i})}registerLanguageProvider(e){let t={provideOnTypeFormattingEdits:(o,s,a,l,u)=>{let c=this._client,d=(g,f,m,y,w)=>{let x={textDocument:cC(g),position:f,ch:m,options:y};return this.sendRequest(p.DocumentOnTypeFormattingRequest.type,x,w)},h=c.middleware;return h.provideOnTypeFormattingEdits?h.provideOnTypeFormattingEdits(o,s,a,l,u,d):d(o,s,a,l,u)}},i=e.moreTriggerCharacter||[],r=[e.firstTriggerCharacter,...i];return[I.registerOnTypeFormattingEditProvider(e.documentSelector,t,r),t]}}});var OC,H9=D(()=>{"use strict";Te();$();ct();oi();ci();OC=class extends Ie{constructor(e){super(e,p.HoverRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"hover");t.dynamicRegistration=!0,t.contentFormat=this._client.supportedMarkupKind}initialize(e,t){let i=this.getRegistrationOptions(t,e.hoverProvider);!i||this.register({id:He(),registerOptions:i})}registerLanguageProvider(e){let t={provideHover:(i,r,o)=>{let s=this._client,a=(u,c,d)=>this.sendRequest(p.HoverRequest.type,qi(u,c),d),l=s.middleware;return l.provideHover?l.provideHover(i,r,o,a):a(i,r,o)}};return[I.registerHoverProvider(e.documentSelector,t),t]}}});var AC,B9=D(()=>{"use strict";Te();$();ct();oi();AC=class extends Ie{constructor(e){super(e,p.ImplementationRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"implementation");t.dynamicRegistration=!0,t.linkSupport=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.implementationProvider);!i||!r||this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t={provideImplementation:(i,r,o)=>{let s=this._client,a=(u,c,d)=>this.sendRequest(p.ImplementationRequest.type,qi(u,c),d),l=s.middleware;return l.provideImplementation?l.provideImplementation(i,r,o,a):a(i,r,o)}};return[I.registerImplementationProvider(e.documentSelector,t),t]}}});var NC,q9=D(()=>{"use strict";Te();$();ct();oi();NC=class extends Ie{constructor(e){super(e,p.InlayHintRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"inlayHint");t.dynamicRegistration=!0,t.resolveSupport={properties:["tooltip","textEdits","label.tooltip","label.location","label.command"]},W(W(e,"workspace"),"inlayHint").refreshSupport=!0}initialize(e,t){this._client.onRequest(p.InlayHintRefreshRequest.type,async()=>{for(let o of this.getAllProviders())o.onDidChangeInlayHints.fire()});let[i,r]=this.getRegistration(t,e.inlayHintProvider);!i||!r||this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=new p.Emitter,i={onDidChangeInlayHints:t.event,provideInlayHints:(o,s,a)=>{let l=this._client,u=(d,h,g)=>{let f={textDocument:po(d),range:h};return this.sendRequest(p.InlayHintRequest.type,f,g,null)},c=l.middleware;return c.provideInlayHints?c.provideInlayHints(o,s,a,u):u(o,s,a)}};i.resolveInlayHint=e.resolveProvider===!0?(o,s)=>{let a=this._client,l=(c,d)=>this.sendRequest(p.InlayHintResolveRequest.type,c,d),u=a.middleware;return u.resolveInlayHint?u.resolveInlayHint(o,s,l):l(o,s)}:void 0;let r=e.documentSelector;return[I.registerInlayHintsProvider(r,i),{provider:i,onDidChangeInlayHints:t}]}}});var HC,W9=D(()=>{"use strict";Te();$();ct();oi();HC=class extends Ie{constructor(e){super(e,p.InlineValueRequest.type)}fillClientCapabilities(e){W(W(e,"textDocument"),"inlineValue").dynamicRegistration=!0,W(W(e,"workspace"),"inlineValue").refreshSupport=!0}initialize(e,t){this._client.onRequest(p.InlineValueRefreshRequest.type,async()=>{for(let o of this.getAllProviders())o.onDidChangeInlineValues.fire()});let[i,r]=this.getRegistration(t,e.inlineValueProvider);!i||!r||this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=new p.Emitter,i={onDidChangeInlineValues:t.event,provideInlineValues:(o,s,a,l)=>{let u=this._client,c=(h,g,f,m)=>{let y={textDocument:po(h),range:g,context:f};return this.sendRequest(p.InlineValueRequest.type,y,m)},d=u.middleware;return d.provideInlineValues?d.provideInlineValues(o,s,a,l,c):c(o,s,a,l)}},r=e.documentSelector;return[I.registerInlineValuesProvider(r,i),{provider:i,onDidChangeInlineValues:t}]}}});var BC,Y9=D(()=>{"use strict";Te();$();ct();oi();BC=class extends Ie{constructor(e){super(e,p.LinkedEditingRangeRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"linkedEditingRange");t.dynamicRegistration=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.linkedEditingRangeProvider);!i||!r||this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t={provideLinkedEditingRanges:(i,r,o)=>{let s=this._client,a=(u,c,d)=>{let h=qi(u,c);return this.sendRequest(p.LinkedEditingRangeRequest.type,h,d)},l=s.middleware;return l.provideLinkedEditingRange?l.provideLinkedEditingRange(i,r,o,a):a(i,r,o)}};return[I.registerLinkedEditingRangeProvider(e.documentSelector,t),t]}}});function mbe(n){return typeof n!="number"?!1:n>=0&&n<=100}var Od,x1=D(()=>{"use strict";ee();$();We();Od=class{constructor(e,t,i){this.client=e;this.token=t;this.disposables=[];this._cancelled=!1;this._percent=0;this._started=!1;this.disposables.push(e.onProgress(p.WorkDoneProgress.type,this.token,r=>{switch(r.kind){case"begin":this.begin(r);break;case"report":this.report(r);break;case"end":this.done(r.message),i&&i(this);break}}))}begin(e){return this._started||this._cancelled?!1:(this._started=!0,k.withProgress({source:`language-client-${this.client.id}`,cancellable:e.cancellable,title:e.title},(t,i)=>(this.progress=t,this.report(e),this._cancelled?Promise.resolve():(this.disposables.push(i.onCancellationRequested(()=>{this.client.sendNotification(p.WorkDoneProgressCancelNotification.type,{token:this.token}),this.cancel()})),new Promise((r,o)=>{this._resolve=r,this._reject=o})))),!0)}report(e){if(!this.progress)return;let t={};e.message&&(t.message=e.message),mbe(e.percentage)&&(t.increment=e.percentage-this._percent,this._percent=e.percentage),Object.keys(t).length>0&&this.progress.report(t)}cancel(){this._cancelled||(this.cleanUp(),this._reject!==void 0&&(this._reject(),this._resolve=void 0,this._reject=void 0))}done(e){if(this.progress){let t={};e&&(t.message=e),typeof this._percent=="number"&&this._percent>0&&(t.increment=100-this._percent),this.progress.report(t)}this.cleanUp(),this._resolve&&(this._resolve(),this._resolve=void 0,this._reject=void 0)}cleanUp(){this._cancelled=!0,this.progress=void 0,Y(this.disposables)}}});var qC,Z9=D(()=>{"use strict";$();ct();x1();qC=class{constructor(e){this._client=e;this.activeParts=new Set}get method(){return p.WorkDoneProgressCreateRequest.method}fillClientCapabilities(e){W(e,"window").workDoneProgress=!0}getState(){return{kind:"window",id:p.WorkDoneProgressCreateRequest.method,registrations:this.activeParts.size>0}}initialize(){let e=this._client,t=r=>{this.activeParts.delete(r)},i=r=>{this.activeParts.add(new Od(this._client,r.token,t))};e.onRequest(p.WorkDoneProgressCreateRequest.type,i)}dispose(){for(let e of this.activeParts)e.done();this.activeParts.clear()}}});var WC,J9=D(()=>{"use strict";Te();$();ct();oi();ci();WC=class extends Ie{constructor(e){super(e,p.ReferencesRequest.type)}fillClientCapabilities(e){W(W(e,"textDocument"),"references").dynamicRegistration=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.referencesProvider);!i||this.register({id:He(),registerOptions:i})}registerLanguageProvider(e){let t={provideReferences:(i,r,o,s)=>{let a=this._client,l=(c,d,h,g)=>this.sendRequest(p.ReferencesRequest.type,b9(c,d,h),g),u=a.middleware;return u.provideReferences?u.provideReferences(i,r,o,s,l):l(i,r,o,s)}};return[I.registerReferencesProvider(e.documentSelector,t),t]}}});var YC,U9=D(()=>{"use strict";ae();Te();Xe();$();ct();oi();ci();YC=class extends Ie{constructor(e){super(e,p.RenameRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"rename");t.dynamicRegistration=!0,t.prepareSupport=!0,t.honorsChangeAnnotations=!0,t.prepareSupportDefaultBehavior=p.PrepareSupportDefaultBehavior.Identifier}initialize(e,t){let i=this.getRegistrationOptions(t,e.renameProvider);!i||(_n(e.renameProvider)&&(i.prepareProvider=!1),this.register({id:He(),registerOptions:i}))}registerLanguageProvider(e){let t={provideRenameEdits:(i,r,o,s)=>{let a=this._client,l=(c,d,h,g)=>{let f={textDocument:{uri:c.uri},position:d,newName:h};return this.sendRequest(p.RenameRequest.type,f,g)},u=a.middleware;return u.provideRenameEdits?u.provideRenameEdits(i,r,o,s,l):l(i,r,o,s)},prepareRename:e.prepareProvider?(i,r,o)=>{let s=this._client,a=(u,c,d)=>{let h={textDocument:po(u),position:c};return this.sendRequest(p.PrepareRenameRequest.type,h,d).then(g=>{if(!g)return null;if(M.is(g))return g;if(this.isDefaultBehavior(g))return g.defaultBehavior===!0?null:Promise.reject(new Error("The element can't be renamed."));if(g&&M.is(g.range))return{range:g.range,placeholder:g.placeholder}})},l=s.middleware;return l.prepareRename?l.prepareRename(i,r,o,a):a(i,r,o)}:void 0};return[I.registerRenameProvider(e.documentSelector,t),t]}isDefaultBehavior(e){let t=e;return t&&_n(t.defaultBehavior)}}});var ZC,$9=D(()=>{"use strict";Te();$();ct();ZC=class extends Ie{constructor(e){super(e,p.SelectionRangeRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"selectionRange");t.dynamicRegistration=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.selectionRangeProvider);!i||!r||this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t={provideSelectionRanges:(i,r,o)=>{let s=this._client,a=(u,c,d)=>{let h={textDocument:{uri:u.uri},positions:c};return this.sendRequest(p.SelectionRangeRequest.type,h,d)},l=s.middleware;return l.provideSelectionRanges?l.provideSelectionRanges(i,r,o,a):a(i,r,o)}};return[I.registerSelectionRangeProvider(e.documentSelector,t),t]}}});var JC,X9=D(()=>{"use strict";ae();Te();Xe();$();ct();oi();JC=class extends Ie{constructor(e){super(e,p.SemanticTokensRegistrationType.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"semanticTokens");t.dynamicRegistration=!0,t.tokenTypes=[Tt.namespace,Tt.type,Tt.class,Tt.enum,Tt.interface,Tt.struct,Tt.typeParameter,Tt.parameter,Tt.variable,Tt.property,Tt.enumMember,Tt.event,Tt.function,Tt.method,Tt.macro,Tt.keyword,Tt.modifier,Tt.comment,Tt.string,Tt.number,Tt.regexp,Tt.decorator,Tt.operator],t.tokenModifiers=[rn.declaration,rn.definition,rn.readonly,rn.static,rn.deprecated,rn.abstract,rn.async,rn.modification,rn.documentation,rn.defaultLibrary],t.formats=[p.TokenFormat.Relative],t.requests={range:!0,full:{delta:!0}},t.multilineTokenSupport=!1,t.overlappingTokenSupport=!1,t.serverCancelSupport=!0,t.augmentsSyntaxTokens=!0,W(W(e,"workspace"),"semanticTokens").refreshSupport=!0}initialize(e,t){this._client.onRequest(p.SemanticTokensRefreshRequest.type,async()=>{for(let s of this.getAllProviders())s.onDidChangeSemanticTokensEmitter.fire()});let[r,o]=this.getRegistration(t,e.semanticTokensProvider);!r||!o||this.register({id:r,registerOptions:o})}registerLanguageProvider(e){let t=_n(e.full)?e.full:e.full!==void 0,i=e.full!==void 0&&typeof e.full!="boolean"&&e.full.delta===!0,r=new p.Emitter,o=t?{onDidChangeSemanticTokens:r.event,provideDocumentSemanticTokens:(u,c)=>{let h=this._client.middleware,g=(f,m)=>{let y={textDocument:po(f)};return this.sendRequest(p.SemanticTokensRequest.type,y,m)};return h.provideDocumentSemanticTokens?h.provideDocumentSemanticTokens(u,c,g):g(u,c)},provideDocumentSemanticTokensEdits:i?(u,c,d)=>{let g=this._client.middleware,f=(m,y,w)=>{let x={textDocument:po(m),previousResultId:y};return this.sendRequest(p.SemanticTokensDeltaRequest.type,x,w)};return g.provideDocumentSemanticTokensEdits?g.provideDocumentSemanticTokensEdits(u,c,d,f):f(u,c,d)}:void 0}:void 0,a=e.range===!0?{provideDocumentRangeSemanticTokens:(u,c,d)=>{let g=this._client.middleware,f=(m,y,w)=>{let x={textDocument:po(m),range:y};return this.sendRequest(p.SemanticTokensRangeRequest.type,x,w)};return g.provideDocumentRangeSemanticTokens?g.provideDocumentRangeSemanticTokens(u,c,d,f):f(u,c,d)}}:void 0,l=[];return o!==void 0&&l.push(I.registerDocumentSemanticTokensProvider(e.documentSelector,o,e.legend)),a!==void 0&&l.push(I.registerDocumentRangeSemanticTokensProvider(e.documentSelector,a,e.legend)),[p.Disposable.create(()=>l.forEach(u=>u.dispose())),{range:a,full:o,onDidChangeSemanticTokensEmitter:r}]}}});var UC,G9=D(()=>{"use strict";Te();$();ct();oi();ci();UC=class extends Ie{constructor(e){super(e,p.SignatureHelpRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"signatureHelp");t.dynamicRegistration=!0,t.contextSupport=!0,t.signatureInformation={documentationFormat:this._client.supportedMarkupKind,activeParameterSupport:!0,parameterInformation:{labelOffsetSupport:!0}}}initialize(e,t){let i=this.getRegistrationOptions(t,e.signatureHelpProvider);!i||this.register({id:He(),registerOptions:i})}registerLanguageProvider(e){let t={provideSignatureHelp:(r,o,s,a)=>{let l=this._client,u=(d,h,g,f)=>this.sendRequest(p.SignatureHelpRequest.type,m9(d,h,g),f),c=l.middleware;return c.provideSignatureHelp?c.provideSignatureHelp(r,o,a,s,u):u(r,o,a,s)}};return[I.registerSignatureHelpProvider(e.documentSelector,t,e.triggerCharacters),t]}}});var $C,XC,GC,zC,KC,QC,z9=D(()=>{"use strict";$();he();ct();oi();ci();$C=class extends jr{constructor(t,i){super(t,b.onDidOpenTextDocument,p.DidOpenTextDocumentNotification.type,"didOpen",r=>u9(r),jr.textDocumentFilter);this._syncedDocuments=i}get registrationType(){return p.DidOpenTextDocumentNotification.type}fillClientCapabilities(t){W(W(t,"textDocument"),"synchronization").dynamicRegistration=!0}initialize(t,i){let r=t.resolvedTextDocumentSync;i&&r&&r.openClose&&this.register({id:He(),registerOptions:{documentSelector:i}})}register(t){super.register(t),t.registerOptions.documentSelector&&b.textDocuments.forEach(i=>{let r=i.uri;this._syncedDocuments.has(r)||this.callback(i)})}notificationSent(t,i,r){super.notificationSent(t,i,r),this._syncedDocuments.set(t.uri.toString(),t)}},XC=class extends jr{constructor(t,i){super(t,b.onDidCloseTextDocument,p.DidCloseTextDocumentNotification.type,"didClose",r=>d9(r),jr.textDocumentFilter);this._syncedDocuments=i}get registrationType(){return p.DidCloseTextDocumentNotification.type}fillClientCapabilities(t){W(W(t,"textDocument"),"synchronization").dynamicRegistration=!0}initialize(t,i){let r=t.resolvedTextDocumentSync;i&&r&&r.openClose&&this.register({id:He(),registerOptions:{documentSelector:i}})}notificationSent(t,i,r){super.notificationSent(t,i,r),this._syncedDocuments.delete(t.uri.toString())}unregister(t){let i=this._selectors.get(t);if(!i)return;super.unregister(t);let r=this._selectors.values();this._syncedDocuments.forEach(o=>{if(b.match(i,o)>0&&!this._selectorFilter(r,o)){let s=this._client.middleware,a=u=>this._client.sendNotification(this._type,this._createParams(u));this._syncedDocuments.delete(o.uri.toString());let l=s.didClose?s.didClose(o,a):a(o);l&&l.catch(u=>{this._client.error(`Sending document notification ${this._type.method} failed`,u)})}})}},GC=class extends vu{constructor(t){super(t);this._changeData=new Map,this._onNotificationSent=new p.Emitter}*getDocumentSelectors(){for(let t of this._changeData.values())yield t.documentSelector}get registrationType(){return p.DidChangeTextDocumentNotification.type}fillClientCapabilities(t){W(W(t,"textDocument"),"synchronization").dynamicRegistration=!0}initialize(t,i){let r=t.resolvedTextDocumentSync;i&&r&&r.change!==void 0&&r.change!==p.TextDocumentSyncKind.None&&this.register({id:He(),registerOptions:Object.assign({},{documentSelector:i},{syncKind:r.change})})}register(t){!t.registerOptions.documentSelector||(this._listener||(this._listener=b.onDidChangeTextDocument(this.callback,this)),this._changeData.set(t.id,{documentSelector:t.registerOptions.documentSelector,syncKind:t.registerOptions.syncKind}))}callback(t){if(t.contentChanges.length===0)return;let i=b.getDocument(t.textDocument.uri),{textDocument:r}=i,o=[];for(let s of this._changeData.values())if(b.match(s.documentSelector,r)>0){let a=this._client.middleware,l,u;s.syncKind===p.TextDocumentSyncKind.Incremental?u=async c=>{let d=g9(c);await this._client.sendNotification(p.DidChangeTextDocumentNotification.type,d),this.notificationSent(c,p.DidChangeTextDocumentNotification.type,d)}:s.syncKind===p.TextDocumentSyncKind.Full?u=async c=>{let d=h9(r);await this._client.sendNotification(p.DidChangeTextDocumentNotification.type,d),this.notificationSent(c,p.DidChangeTextDocumentNotification.type,d)}:u=()=>Promise.resolve(void 0),l=a.didChange?a.didChange(t,u):u(t),l&&o.push(l)}return Promise.all(o).then(void 0,s=>{throw this._client.error(`Sending document notification ${p.DidChangeTextDocumentNotification.type.method} failed`,s),s})}get onNotificationSent(){return this._onNotificationSent.event}notificationSent(t,i,r){this._onNotificationSent.fire({original:t,type:i,params:r})}unregister(t){this._changeData.delete(t)}dispose(){this._changeData.clear(),this._listener&&(this._listener.dispose(),this._listener=void 0)}getProvider(t){for(let i of this._changeData.values())if(b.match(i.documentSelector,t)>0)return{send:r=>this.callback(r)}}},zC=class extends jr{constructor(e){super(e,b.onWillSaveTextDocument,p.WillSaveTextDocumentNotification.type,"willSave",t=>g1(t),(t,i)=>jr.textDocumentFilter(t,i.document))}get registrationType(){return p.WillSaveTextDocumentNotification.type}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"synchronization");t.willSave=!0}initialize(e,t){let i=e.resolvedTextDocumentSync;t&&i&&i.willSave&&this.register({id:He(),registerOptions:{documentSelector:t}})}},KC=class extends vu{constructor(t){super(t);this._selectors=new Map}getDocumentSelectors(){return this._selectors.values()}get registrationType(){return p.WillSaveTextDocumentWaitUntilRequest.type}fillClientCapabilities(t){let i=W(W(t,"textDocument"),"synchronization");i.willSaveWaitUntil=!0}initialize(t,i){let r=t.resolvedTextDocumentSync;i&&i.length>0&&r&&r.willSaveWaitUntil&&this.register({id:He(),registerOptions:{documentSelector:i}})}register(t){!t.registerOptions.documentSelector||(this._listener||(this._listener=b.onWillSaveTextDocument(this.callback,this)),this._selectors.set(t.id,t.registerOptions.documentSelector))}callback(t){if(jr.textDocumentFilter(this._selectors.values(),t.document)){let i=this._client.middleware,r=o=>this.sendRequest(p.WillSaveTextDocumentWaitUntilRequest.type,g1(o),p.CancellationToken.None);t.waitUntil(i.willSaveWaitUntil?i.willSaveWaitUntil(t,r):r(t))}}unregister(t){this._selectors.delete(t),this._selectors.size===0&&this._listener&&(this._listener.dispose(),this._listener=void 0)}dispose(){this._selectors.clear(),this._listener&&(this._listener.dispose(),this._listener=void 0)}},QC=class extends jr{constructor(t){super(t,b.onDidSaveTextDocument,p.DidSaveTextDocumentNotification.type,"didSave",i=>p9(i,this._includeText),jr.textDocumentFilter);this._includeText=!1}get registrationType(){return p.DidSaveTextDocumentNotification.type}fillClientCapabilities(t){W(W(t,"textDocument"),"synchronization").didSave=!0}initialize(t,i){let r=t.resolvedTextDocumentSync;if(i&&r&&r.save){let o=typeof r.save=="boolean"?{includeText:!1}:{includeText:!!r.save.includeText};this.register({id:He(),registerOptions:Object.assign({},{documentSelector:i},o)})}}register(t){this._includeText=!!t.registerOptions.includeText,super.register(t)}}});var VC,K9=D(()=>{"use strict";Te();$();ct();oi();VC=class extends Ie{constructor(e){super(e,p.TypeDefinitionRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"typeDefinition");t.dynamicRegistration=!0,t.linkSupport=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.typeDefinitionProvider);!i||!r||this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t={provideTypeDefinition:(i,r,o)=>{let s=this._client,a=(u,c,d)=>this.sendRequest(p.TypeDefinitionRequest.type,qi(u,c),d),l=s.middleware;return l.provideTypeDefinition?l.provideTypeDefinition(i,r,o,a):a(i,r,o)}};return[I.registerTypeDefinitionProvider(e.documentSelector,t),t]}}});var eS,Q9=D(()=>{"use strict";Te();$();ct();oi();eS=class extends Ie{constructor(e){super(e,p.TypeHierarchyPrepareRequest.type)}fillClientCapabilities(e){let t=W(W(e,"textDocument"),"typeHierarchy");t.dynamicRegistration=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.typeHierarchyProvider);!i||!r||this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=this._client,i=e.documentSelector,r={prepareTypeHierarchy:(o,s,a)=>{let l=(c,d,h)=>{let g=qi(c,d);return this.sendRequest(p.TypeHierarchyPrepareRequest.type,g,h)},u=t.middleware;return u.prepareTypeHierarchy?u.prepareTypeHierarchy(o,s,a,l):l(o,s,a)},provideTypeHierarchySupertypes:(o,s)=>{let a=(u,c)=>this.sendRequest(p.TypeHierarchySupertypesRequest.type,{item:u},c),l=t.middleware;return l.provideTypeHierarchySupertypes?l.provideTypeHierarchySupertypes(o,s,a):a(o,s)},provideTypeHierarchySubtypes:(o,s)=>{let a=(u,c)=>this.sendRequest(p.TypeHierarchySubtypesRequest.type,{item:u},c),l=t.middleware;return l.provideTypeHierarchySubtypes?l.provideTypeHierarchySubtypes(o,s,a):a(o,s)}};return[I.registerTypeHierarchyProvider(i,r),r]}}});function V9(){let n=process.env.LANG;return n?n.split(".")[0]:"en"}function Os(n){return Ue(n)?n:n.method}function xu(){return gh(new Date)}function ez(n){return n.isLSPMessage&&n.type?`[LSP - ${xu()}] `:`[Trace - ${xu()}] `}function Dm(n,e=!1){if(n instanceof p.ResponseError){let t=n;return` Message: ${t.message} + Code: ${t.code} ${t.data?` +`+t.data.toString():""}`}return n instanceof Error?Ue(n.stack)?n.stack:n.message:Ue(n)?n:(0,st.inspect)(n,!1,null,e)}function tz(n){if(typeof n!="string")return Dm(n);let e=["Params: ","Result: "];for(let t of e)if(n.startsWith(t))try{let i=JSON.parse(n.slice(t.length));return t+Dm(i,!0)}catch{return n}return n}var iz=D(()=>{"use strict";Ce();Xe();ce();$()});var iS,nS,tS,nz=D(()=>{"use strict";iS=(t=>(t[t.DoNotRestart=1]="DoNotRestart",t[t.Restart=2]="Restart",t))(iS||{}),nS=(t=>(t[t.Continue=1]="Continue",t[t.Shutdown=2]="Shutdown",t))(nS||{}),tS=class{constructor(e,t){this.name=e;this.maxRestartCount=t;this.milliseconds=3*60*1e3;this.restarts=[]}error(e,t,i){return i&&i<=3?1:2}closed(){return this.restarts.push(Date.now()),this.restarts.length{"use strict";Ce();rS=J("language-client"),oS=class{error(e){rS.error(e)}warn(e){rS.warn(e)}info(e){rS.info(e)}log(e){rS.log(e)}},Tm=class{error(e){}warn(e){}info(e){}log(e){}}});function C1(n,e){if(n!==void 0)return n[e]}function oz(n,e){return n.filter(t=>!e.includes(t))}var sS,sz=D(()=>{"use strict";Je();at();$();he();ci();sS=class{constructor(e){this._client=e;this._listeners=new Map}getState(){return{kind:"workspace",id:this.registrationType.method,registrations:this._listeners.size>0}}get registrationType(){return p.DidChangeWorkspaceFoldersNotification.type}getValidWorkspaceFolders(){let{workspaceFolders:e}=b;if(!e||e.length==0)return;let t=this._client.clientOptions.ignoredRootPaths??[],i=e.filter(r=>{let o=A.parse(r.uri).fsPath;return t.every(s=>!li(s,o))});return i.length?i:void 0}fillInitializeParams(e){let t=this.getValidWorkspaceFolders();this.initializeWithFolders(t),t===void 0?(this._client.warn("No valid workspaceFolder exists"),e.workspaceFolders=null):e.workspaceFolders=t.map(i=>this.asProtocol(i))}initializeWithFolders(e){this._initialFolders=e}fillClientCapabilities(e){e.workspace=e.workspace||{},e.workspace.workspaceFolders=!0}initialize(e){let t=this._client;t.onRequest(p.WorkspaceFoldersRequest.type,o=>{let s=()=>{let l=this.getValidWorkspaceFolders();return l===void 0?null:l.map(c=>this.asProtocol(c))},a=t.middleware.workspace;return a!=null&&a.workspaceFolders?a.workspaceFolders(o,s):s(o)});let i=C1(C1(C1(e,"workspace"),"workspaceFolders"),"changeNotifications"),r;typeof i=="string"?r=i:i&&(r=He()),r&&this.register({id:r,registerOptions:void 0})}doSendEvent(e,t){let i={event:{added:e.map(r=>this.asProtocol(r)),removed:t.map(r=>this.asProtocol(r))}};return this._client.sendNotification(p.DidChangeWorkspaceFoldersNotification.type,i)}sendInitialEvent(e){let t;if(this._initialFolders&&e){let i=oz(this._initialFolders,e),r=oz(e,this._initialFolders);(r.length>0||i.length>0)&&(t=this.doSendEvent(r,i))}else this._initialFolders?t=this.doSendEvent([],this._initialFolders):e&&(t=this.doSendEvent(e,[]));t&&t.catch(i=>{this._client.error(`Sending notification ${p.DidChangeWorkspaceFoldersNotification.type.method} failed`,i)})}register(e){let t=e.id,i=this._client;if(this._listeners.size>0)return;let r=b.onDidChangeWorkspaceFolders(s=>{let a=c=>this.doSendEvent(c.added,c.removed),l=i.middleware.workspace,u=l!=null&&l.didChangeWorkspaceFolders?l.didChangeWorkspaceFolders(s,a):a(s);u&&u.catch(c=>{this._client.error(`Sending notification ${p.DidChangeWorkspaceFoldersNotification.type.method} failed`,c)})});this._listeners.set(t,r);let o=this.getValidWorkspaceFolders();this.sendInitialEvent(o)}unregister(e){}dispose(){for(let e of this._listeners.values())e.dispose();this._listeners.clear()}asProtocol(e){return e==null?null:{uri:e.uri,name:e.name}}}});var S1,aS,az=D(()=>{"use strict";Te();$();w1();ct();ci();S1=class extends go{constructor(t,i){super(t);this._registrationType=i;this._registrations=new Map}getState(){let t=this._registrations.size>0;return{kind:"workspace",id:this._registrationType.method,registrations:t}}get registrationType(){return this._registrationType}register(t){let i=this.registerLanguageProvider(t.registerOptions);this._registrations.set(t.id,{disposable:i[0],provider:i[1]})}unregister(t){let i=this._registrations.get(t);i&&i.disposable.dispose()}dispose(){this._registrations.forEach(t=>{t.disposable.dispose()}),this._registrations.clear()}getProviders(){let t=[];for(let i of this._registrations.values())t.push(i.provider);return t}},aS=class extends S1{constructor(e){super(e,p.WorkspaceSymbolRequest.type)}fillClientCapabilities(e){let t=W(W(e,"workspace"),"symbol");t.dynamicRegistration=!0,t.symbolKind={valueSet:y1},t.tagSupport={valueSet:v1},t.resolveSupport={properties:["location.range"]}}initialize(e){!e.workspaceSymbolProvider||this.register({id:He(),registerOptions:e.workspaceSymbolProvider===!0?{workDoneProgress:!1}:e.workspaceSymbolProvider})}registerLanguageProvider(e){let t={provideWorkspaceSymbols:(i,r)=>{let o=this._client,s=(l,u)=>this.sendRequest(p.WorkspaceSymbolRequest.type,{query:l},u),a=o.middleware;return a.provideWorkspaceSymbols?a.provideWorkspaceSymbols(i,r,s):s(i,r)},resolveWorkspaceSymbol:e.resolveProvider===!0?(i,r)=>{let o=this._client,s=(l,u)=>this.sendRequest(p.WorkspaceSymbolResolveRequest.type,l,u),a=o.middleware;return a.resolveWorkspaceSymbol?a.resolveWorkspaceSymbol(i,r,s):s(i,r)}:void 0};return[I.registerWorkspaceSymbolProvider(t),t]}}});function bbe(n,e,t,i,r){let o=new oS,s=(0,p.createProtocolConnection)(n,e,o,r);return s.onError(l=>{t(l[0],l[1],l[2])}),s.onClose(i),{id:"",hasPendingResponse:()=>s.hasPendingResponse(),listen:()=>s.listen(),sendRequest:(l,...u)=>s.sendRequest(Os(l),...u),onRequest:(l,u)=>s.onRequest(Os(l),u),sendNotification:(l,u)=>s.sendNotification(Os(l),u),onNotification:(l,u)=>s.onNotification(Os(l),u),onProgress:s.onProgress,sendProgress:s.sendProgress,trace:(l,u,c)=>s.trace(l,u,c),initialize:l=>s.sendRequest(p.InitializeRequest.type,l),shutdown:()=>s.sendRequest(p.ShutdownRequest.type,void 0),exit:()=>s.sendNotification(p.ExitNotification.type),end:()=>s.end(),dispose:()=>s.dispose()}}var D1,lz,uz,uS,cS,T1,Ad,lS,km,ybe,k1=D(()=>{"use strict";ae();Je();Te();Ce();ee();Se();Ti();at();Xe();ce();Pt();$();pe();We();he();w9();x9();C9();S9();D9();T9();k9();P9();_9();E9();I9();w1();L9();ct();j9();O9();A9();N9();H9();B9();q9();W9();Y9();Z9();x1();J9();U9();$9();X9();G9();z9();K9();Q9();iz();oi();nz();rz();ci();sz();az();D1=J("language-client-client"),lz="\x1B[31m",uz="\x1B[39m";uS=(r=>(r[r.Info=1]="Info",r[r.Warn=2]="Warn",r[r.Error=3]="Error",r[r.Never=4]="Never",r))(uS||{}),cS=(i=>(i[i.Stopped=1]="Stopped",i[i.Running=2]="Running",i[i.Starting=3]="Starting",i))(cS||{}),T1=(s=>(s[s.Initial=0]="Initial",s[s.Starting=1]="Starting",s[s.StartFailed=2]="StartFailed",s[s.Running=3]="Running",s[s.Stopping=4]="Stopping",s[s.Stopped=5]="Stopped",s))(T1||{});(e=>{function n(t){return t&&p.MessageReader.is(t.reader)&&p.MessageWriter.is(t.writer)}e.is=n})(Ad||(Ad={}));lS=class{constructor(e,t,i){this._consoleDebug=!1;this._features=[];this._dynamicFeatures=new Map;this._id=e,this._name=t,i.outputChannel?this._outputChannel=i.outputChannel:this._outputChannel=void 0,this._clientOptions=this.resolveClientOptions(i),this.$state=0,this._connection=void 0,this._initializeResult=void 0,this._listeners=[],this._diagnostics=void 0,this._notificationHandlers=new Map,this._pendingNotificationHandlers=new Map,this._notificationDisposables=new Map,this._requestHandlers=new Map,this._pendingRequestHandlers=new Map,this._requestDisposables=new Map,this._progressHandlers=new Map,this._pendingProgressHandlers=new Map,this._progressDisposables=new Map,this._ignoredRegistrations=new Set,this._onStop=void 0,this._stateChangeEmitter=new p.Emitter,this._trace=p.Trace.Off,this._tracer={log:(r,o)=>{Ue(r)?this.logTrace(r,o):this.logObjectTrace(r)}},this._syncedDocuments=new Map,this.registerBuiltinFeatures()}switchConsole(){this._consoleDebug=!this._consoleDebug,this._consoleDebug||this.enableVerboseTrace()}resolveClientOptions(e){var u;let t={isTrusted:!1,supportHtml:!1};e.markdown!=null&&(t.isTrusted=e.markdown.isTrusted===!0,t.supportHtml=e.markdown.supportHtml===!0);let i=e.disableSnippetCompletion,r=e.disableMarkdown;r===void 0&&(r=b.initialConfiguration.get("coc.preferences.enableMarkdown")===!1);let o=b.getConfiguration("pullDiagnostic",e.workspaceFolder),s=e.diagnosticPullOptions??{};s.onChange===void 0&&(s.onChange=o.get("onChange")),s.onSave===void 0&&(s.onSave=o.get("onSave")),s.workspace===void 0&&(s.workspace=o.get("workspace")),s.ignored=o.get("ignored",[]).concat(s.ignored??[]);let a=e.disabledFeatures??[];for(let c of["disableCompletion","disableWorkspaceFolders","disableDiagnostics"])if(typeof e[c]=="boolean"){let d=` +`+Error().stack.split(` +`).slice(2,4).join(` +`);if(D1.warn(`${c} in the client options is deprecated. use disabledFeatures instead.`,d),e[c]===!0){let h=c.slice(7);a.push(h[0].toLowerCase()+h.slice(1))}}let l=e.separateDiagnostics;return e.separateDiagnostics===void 0&&(l=b.getConfiguration("diagnostic",e.workspaceFolder).get("separateRelatedInformationAsDiagnostics")),{disabledFeatures:a,disableMarkdown:r,disableSnippetCompletion:i,separateDiagnostics:l,diagnosticPullOptions:s,rootPatterns:e.rootPatterns??[],requireRootPattern:e.requireRootPattern,disableDynamicRegister:e.disableDynamicRegister,formatterPriority:e.formatterPriority??0,ignoredRootPaths:e.ignoredRootPaths??[],documentSelector:e.documentSelector??[],synchronize:e.synchronize??{},diagnosticCollectionName:e.diagnosticCollectionName,outputChannelName:e.outputChannelName??this._id,revealOutputChannelOn:e.revealOutputChannelOn??4,stdioEncoding:e.stdioEncoding??"utf8",initializationOptions:e.initializationOptions,initializationFailedHandler:e.initializationFailedHandler,progressOnInitialization:e.progressOnInitialization===!0,errorHandler:e.errorHandler??this.createDefaultErrorHandler((u=e.connectionOptions)==null?void 0:u.maxRestartCount),middleware:e.middleware??{},workspaceFolder:e.workspaceFolder,connectionOptions:e.connectionOptions,markdown:t}}get supportedMarkupKind(){return this.clientOptions.disableMarkdown?[yr.PlainText]:[yr.Markdown,yr.PlainText]}get state(){return this.getPublicState()}get $state(){return this._state}set $state(e){let t=this.getPublicState();this._state=e;let i=this.getPublicState();i!==t&&this._stateChangeEmitter.fire({oldState:t,newState:i})}get id(){return this._id}get name(){return this._name}get middleware(){return this._clientOptions.middleware}getPublicState(){return this.$state===3?2:this.$state===1?3:1}get initializeResult(){return this._initializeResult}async sendRequest(e,...t){this.checkState();try{return await(await this.$start()).sendRequest(e,...t)}catch(i){throw this.error(`Sending request ${Os(e)} failed.`,i),i}}onRequest(e,t){let i=Os(e);this._requestHandlers.set(i,t);let r=this.activeConnection(),o;return r!==void 0?(this._requestDisposables.set(i,r.onRequest(e,t)),o={dispose:()=>{let s=this._requestDisposables.get(i);s!==void 0&&(s.dispose(),this._requestDisposables.delete(i))}}):(this._pendingRequestHandlers.set(i,t),o={dispose:()=>{this._pendingRequestHandlers.delete(i);let s=this._requestDisposables.get(i);s!==void 0&&(s.dispose(),this._requestDisposables.delete(i))}}),{dispose:()=>{this._requestHandlers.delete(i),o.dispose()}}}async sendNotification(e,t){if(!(this.$state===2||this.$state===4||this.$state===5))try{return await(await this.$start()).sendNotification(e,t)}catch(i){throw this.error(`Sending notification ${Os(e)} failed.`,i),i}}onNotification(e,t){let i=Os(e);this._notificationHandlers.set(i,t);let r=this.activeConnection(),o;return r!==void 0?(this._notificationDisposables.set(i,r.onNotification(e,t)),o={dispose:()=>{let s=this._notificationDisposables.get(i);s!==void 0&&(s.dispose(),this._notificationDisposables.delete(i))}}):(this._pendingNotificationHandlers.set(i,t),o={dispose:()=>{this._pendingNotificationHandlers.delete(i);let s=this._notificationDisposables.get(i);s!==void 0&&(s.dispose(),this._notificationDisposables.delete(i))}}),{dispose:()=>{this._notificationHandlers.delete(i),o.dispose()}}}onProgress(e,t,i){this._progressHandlers.set(t,{type:e,handler:i});let r=this.activeConnection(),o,s=this._clientOptions.middleware.handleWorkDoneProgress,a=p.WorkDoneProgress.is(e)&&s!==void 0?l=>{s(t,l,()=>i(l))}:i;return r!==void 0?(this._progressDisposables.set(t,r.onProgress(e,t,a)),o={dispose:()=>{let l=this._progressDisposables.get(t);l!==void 0&&(l.dispose(),this._progressDisposables.delete(t))}}):(this._pendingProgressHandlers.set(t,{type:e,handler:i}),o={dispose:()=>{this._pendingProgressHandlers.delete(t);let l=this._progressDisposables.get(t);l!==void 0&&(l.dispose(),this._progressDisposables.delete(t))}}),{dispose:()=>{this._progressHandlers.delete(t),o.dispose()}}}async sendProgress(e,t,i){this.checkState();try{await(await this.$start()).sendProgress(e,t,i)}catch(r){throw this.error(`Sending progress for token ${t} failed.`,r),r}}get configuredSection(){var t;let e=(t=this._clientOptions.synchronize)==null?void 0:t.configurationSection;return typeof e=="string"&&e.startsWith("languageserver.")?e:void 0}get clientOptions(){return this._clientOptions}get onDidChangeState(){return this._stateChangeEmitter.event}get outputChannel(){if(!this._outputChannel){let{outputChannelName:e}=this._clientOptions;this._outputChannel=k.createOutputChannel(ye(e,this._name))}return this._outputChannel}get diagnostics(){return this._diagnostics}createDefaultErrorHandler(e){return new tS(this._id,e??4)}set trace(e){this._trace=e;let t=this.activeConnection();t!==void 0&&t.trace(this._trace,this._tracer,{sendNotification:!1,traceFormat:this._traceFormat})}logObjectTrace(e){this.outputChannel.append(ez(e)),this.traceData(e)}traceData(e,t=!1){this.outputChannel.appendLine(Dm(e)),this._consoleDebug&&(t?console.error(lz+Dm(e)+uz):console.log(tz(e)))}consoleMessage(e,t,i=!1){if(this._consoleDebug){let r=e+" "+t;i?console.error(lz+r+uz):console.log(r)}}info(e,t,i=!0){let r=`[Info - ${xu()}]`;this.outputChannel.appendLine(`${r} ${e}`),this.consoleMessage(r,e),t!=null&&this.traceData(t),i&&this._clientOptions.revealOutputChannelOn<=1&&this.showNotificationMessage(p.MessageType.Info,e)}warn(e,t,i=!0){let r=`[Warn - ${xu()}]`;this.outputChannel.appendLine(`${r} ${e}`),this.consoleMessage(r,e),t!=null&&this.traceData(t),i&&this._clientOptions.revealOutputChannelOn<=2&&this.showNotificationMessage(p.MessageType.Warning,e)}error(e,t,i=!0){let r=`[Error - ${xu()}]`;this.outputChannel.appendLine(`${r} ${e}`),this.consoleMessage(r,e,!0),t!=null&&this.traceData(t,!0),(i==="force"||i&&this._clientOptions.revealOutputChannelOn<=3)&&this.showNotificationMessage(p.MessageType.Error,e)}logTrace(e,t){let i=`[Trace - ${xu()}]`;this.outputChannel.appendLine(`${i} ${e}`),this.consoleMessage(i,e),t!=null&&this.traceData(t)}showNotificationMessage(e,t){(e===p.MessageType.Error?k.showErrorMessage.bind(k):e===p.MessageType.Warning?k.showWarningMessage.bind(k):k.showInformationMessage.bind(k))(t)}needsStart(){return this.$state===0||this.$state===4||this.$state===5}needsStop(){return this.$state===1||this.$state===3}activeConnection(){return this.$state===3&&this._connection!==void 0?this._connection:void 0}get hasPendingResponse(){var e;return(e=this._connection)==null?void 0:e.hasPendingResponse()}onReady(){return this._onStart?this._onStart:new Promise(e=>{let t=this.onDidChangeState(i=>{i.newState===2&&(t.dispose(),e())})})}get started(){return this.$state!=0}isRunning(){return this.$state===3}async _start(){if(this._disposed==="disposing"||this._disposed==="disposed")throw new Error("Client got disposed and can't be restarted.");if(this.$state===4)throw new Error("Client is currently stopping. Can only restart a full stopped client");if(this._onStart!==void 0)return this._onStart;this._rootPath=this.resolveRootPath();let[e,t,i]=this.createOnStartPromise();if(this._onStart=e,this._diagnostics===void 0){let r=this._clientOptions,o=r.diagnosticCollectionName?r.diagnosticCollectionName:this._id;r.disabledFeatures.includes("diagnostics")||(this._diagnostics=I.createDiagnosticCollection(o))}for(let[r,o]of this._notificationHandlers)this._pendingNotificationHandlers.has(r)||this._pendingNotificationHandlers.set(r,o);for(let[r,o]of this._requestHandlers)this._pendingRequestHandlers.has(r)||this._pendingRequestHandlers.set(r,o);for(let[r,o]of this._progressHandlers)this._pendingProgressHandlers.has(r)||this._pendingProgressHandlers.set(r,o);this.$state=1;try{let r=await this.createConnection();this.handleConnectionEvents(r),r.listen(),await this.initialize(r),t()}catch(r){this.$state=2,this.error(`${this._name} client: couldn't create connection to server.`,r,"force"),i(r)}return this._onStart}start(){let e=this._start();return e.dispose=()=>{this.needsStop()&&this.stop()},e}async $start(){if(this.$state===2)throw new Error("Previous start failed. Can't restart server.");await this._start();let e=this.activeConnection();if(e===void 0)throw new Error("Starting server failed");return e}handleConnectionEvents(e){e.onNotification(p.LogMessageNotification.type,t=>{switch(t.type){case p.MessageType.Error:this.error(t.message);break;case p.MessageType.Warning:this.warn(t.message);break;case p.MessageType.Info:this.info(t.message);break;default:this.outputChannel.appendLine(t.message)}}),e.onNotification(p.ShowMessageNotification.type,t=>{switch(t.type){case p.MessageType.Error:k.showErrorMessage(t.message);break;case p.MessageType.Warning:k.showWarningMessage(t.message);break;case p.MessageType.Info:k.showInformationMessage(t.message);break;default:k.showInformationMessage(t.message)}}),e.onRequest(p.ShowMessageRequest.type,t=>{let i;switch(t.type){case p.MessageType.Error:i=k.showErrorMessage.bind(k);break;case p.MessageType.Warning:i=k.showWarningMessage.bind(k);break;case p.MessageType.Info:i=k.showInformationMessage.bind(k);break;default:i=k.showInformationMessage.bind(k)}let r=le(t.actions);return i(t.message,...r).then(o=>o??null)}),e.onRequest(p.ShowDocumentRequest.type,async t=>{var o;let i=async s=>{try{if(s.external===!0||/^https?:\/\//.test(s.uri))return await b.openResource(s.uri),{success:!0};{let{selection:a,takeFocus:l}=s;return l===!1?await b.loadFile(s.uri):(await b.jumpTo(s.uri,a==null?void 0:a.start),a&&ze(a.start,a.end)!=0&&await k.selectRange(a)),{success:!0}}}catch{return{success:!1}}},r=(o=this._clientOptions.middleware.window)==null?void 0:o.showDocument;return r!==void 0?r(t,i):i(t)})}createOnStartPromise(){let e,t;return[new Promise((r,o)=>{e=r,t=o}),e,t]}resolveRootPath(){if(this._clientOptions.workspaceFolder)return A.parse(this._clientOptions.workspaceFolder.uri).fsPath;let{ignoredRootPaths:e,rootPatterns:t,requireRootPattern:i}=this._clientOptions,r;te(t)||(r=b.documentsManager.resolveRoot(t,i));let o=r||b.rootPath;return li(o,Et.homedir())||e.some(s=>li(o,s))?(this.warn(`Ignored rootPath ${o} of client "${this._id}"`),null):o}initialize(e){let{initializationOptions:t,workspaceFolder:i,progressOnInitialization:r}=this._clientOptions;this.refreshTrace(e,!1);let o=this._rootPath,s={processId:process.pid,rootPath:o||null,rootUri:o?Md(A.file(o)):null,capabilities:this.computeClientCapabilities(),initializationOptions:it(t)?t():t,trace:p.Trace.toString(this._trace),workspaceFolders:i?[i]:null,locale:V9(),clientInfo:{name:"coc.nvim",version:b.version}};if(this.fillInitializeParams(s),r){let a=He();s.workDoneToken=a,e.id=this._id;let l=new Od(e,a);return l.begin({title:`Initializing ${this.id}`,kind:"begin"}),this.doInitialize(e,s).then(u=>(l.done(),u),u=>(l.done(),Promise.reject(u)))}else return this.doInitialize(e,s)}async doInitialize(e,t){try{let i=await e.initialize(t);if(i.capabilities.positionEncoding!==void 0&&i.capabilities.positionEncoding!==p.PositionEncodingKind.UTF16)throw await e.shutdown(),await e.exit(),e.end(),e.dispose(),new Error(`Unsupported position encoding (${i.capabilities.positionEncoding}) received from server ${this.name}`);this._initializeResult=i,this.$state=3;let r;Xt(i.capabilities.textDocumentSync)?i.capabilities.textDocumentSync===p.TextDocumentSyncKind.None?r={openClose:!1,change:p.TextDocumentSyncKind.None,save:void 0}:r={openClose:!0,change:i.capabilities.textDocumentSync,save:{includeText:!1}}:i.capabilities.textDocumentSync!==void 0&&i.capabilities.textDocumentSync!==null&&(r=i.capabilities.textDocumentSync),this._capabilities=Object.assign({},i.capabilities,{resolvedTextDocumentSync:r}),e.onNotification(p.PublishDiagnosticsNotification.type,o=>this.handleDiagnostics(o)),e.onRequest(p.RegistrationRequest.type,o=>this.handleRegistrationRequest(o)),e.onRequest("client/registerFeature",o=>this.handleRegistrationRequest(o)),e.onRequest(p.UnregistrationRequest.type,o=>this.handleUnregistrationRequest(o)),e.onRequest("client/unregisterFeature",o=>this.handleUnregistrationRequest(o)),e.onRequest(p.ApplyWorkspaceEditRequest.type,o=>this.handleApplyWorkspaceEdit(o));for(let[o,s]of this._pendingNotificationHandlers)this._notificationDisposables.set(o,e.onNotification(o,s));this._pendingNotificationHandlers.clear();for(let[o,s]of this._pendingRequestHandlers)this._requestDisposables.set(o,e.onRequest(o,s));this._pendingRequestHandlers.clear();for(let[o,s]of this._pendingProgressHandlers)this._progressDisposables.set(o,e.onProgress(s.type,o,s.handler));return this._pendingProgressHandlers.clear(),await e.sendNotification(p.InitializedNotification.type,{}),this.hookConfigurationChanged(e),this.initializeFeatures(e),i}catch(i){let r=o=>{o?this.initialize(e).catch(()=>{}):this.stop().catch(()=>{})};throw this._clientOptions.initializationFailedHandler?r(this._clientOptions.initializationFailedHandler(i)):i instanceof p.ResponseError&&i.data&&i.data.retry?(this._connection&&(this._connection.end(),this._connection.dispose(),this._connection=null),k.showErrorMessage(i.message,{title:"Retry",id:"retry"}).then(o=>{r(o&&o.id==="retry")})):(k.showErrorMessage(se(i.message)),this.error("Server initialization failed.",i),D1.error(`Server ${this.id} initialization failed.`,i),r(!1)),i}}stop(e=2e3){return this.shutdown("stop",e)}async shutdown(e,t){if(this.$state===5||this.$state===0)return;if(this.$state===4)return this._onStop;let i=this.activeConnection();if(i===void 0||this.$state!==3&&this.$state!==1)throw new Error(`Client is not running and can't be stopped. It's current state is: ${this.$state}`);this._initializeResult=void 0,this.$state=4,this.cleanUp(e);let r,o=new Promise(a=>{r=setTimeout(a,t)}),s=(async a=>(await a.shutdown(),await a.exit(),a))(i);return this._onStop=Promise.race([o,s]).then(a=>{if(r&&clearTimeout(r),a!==void 0)a.end(),a.dispose();else throw this.error("Stopping server timed out",void 0),new Error("Stopping the server timed out")},a=>{throw this.error("Stopping server failed",a),a}).finally(()=>{this.$state=5,e==="stop"&&this.cleanUpChannel(),this._onStart=void 0,this._onStop=void 0,this._connection=void 0,this._ignoredRegistrations.clear()})}dispose(e=2e3){if(!this._disposed)try{return this._disposed="disposing",this.needsStop()?this.stop(e):void 0}finally{this._disposed="disposed"}}cleanUp(e){this._listeners&&(this._listeners.forEach(t=>t.dispose()),this._listeners=[]),this._syncedDocuments&&this._syncedDocuments.clear();for(let t of this._features.values())typeof t.dispose=="function"&&t.dispose();e==="stop"&&this._diagnostics&&(this._diagnostics.dispose(),this._diagnostics=void 0)}cleanUpChannel(){this._outputChannel&&(this._outputChannel.dispose(),this._outputChannel=void 0)}async forceDocumentSync(){let e=Array.from(this._syncedDocuments.values());await Promise.all(e.map(t=>{let i=b.getDocument(t.uri);return i?i.synchronize():null}))}handleDiagnostics(e){let{uri:t,diagnostics:i,version:r}=e;if(Xt(r)&&!b.hasDocument(t,r))return;let o=this.clientOptions.middleware.handleDiagnostics;o?o(t,i,(s,a)=>this.setDiagnostics(s,a)):this.setDiagnostics(t,i)}async createConnection(){let e=(r,o,s)=>{this.handleConnectionError(r,o,s)},t=()=>{this.handleConnectionClosed()},i=await this.createMessageTransports(ye(this._clientOptions.stdioEncoding,"utf8"));return this._connection=bbe(i.reader,i.writer,e,t,this._clientOptions.connectionOptions),this._connection}handleConnectionClosed(){if(this.$state===5){D1.debug(`client ${this._id} normal closed`);return}try{this._connection&&this._connection.dispose()}catch{}let e=1;if(this.$state!==4&&this._clientOptions.errorHandler)try{e=this._clientOptions.errorHandler.closed()}catch{}this._connection=void 0,e===1?(this.error("Connection to server got closed. Server will not be restarted.",void 0,"force"),this.cleanUp("stop"),this.$state===1?this.$state=2:this.$state=5,this._onStop=Promise.resolve(),this._onStart=void 0):e===2&&(this.info("Connection to server got closed. Server will restart."),this.cleanUp("restart"),this.$state=0,this._onStop=Promise.resolve(),this._onStart=void 0,this.start().catch(this.error.bind(this,"Restarting server failed")))}checkState(){if(this.$state===2||this.$state===4||this.$state===5)throw new p.ResponseError(p.ErrorCodes.ConnectionInactive,"Client is not running")}handleConnectionError(e,t,i){this._clientOptions.errorHandler.error(e,t,i)===2&&(this.error(`Connection to server ${this._name} is erroring, ${e.message}. Shutting down server.`,e,"force"),this.stop().catch(this.error.bind(this,"Stopping server failed")))}hookConfigurationChanged(e){b.onDidChangeConfiguration(t=>{t.affectsConfiguration(this._id)&&this.refreshTrace(e,!0)},null,this._listeners)}refreshTrace(e,t){let i=b.getConfiguration(this._id,this.clientOptions.workspaceFolder),r=p.Trace.Off,o=p.TraceFormat.Text;if(i){let s=i.get("trace.server","off");typeof s=="string"?r=p.Trace.fromString(s):(r=p.Trace.fromString(i.get("trace.server.verbosity","off")),o=p.TraceFormat.fromString(i.get("trace.server.format","text")))}t&&this._trace==r&&this._traceFormat==o||(this._trace=r,this._traceFormat=o,e.trace(this._trace,this._tracer,{sendNotification:t,traceFormat:this._traceFormat}).catch(this.error.bind(this,"Updating trace failed with error")))}enableVerboseTrace(){this._trace=p.Trace.Verbose,this._traceFormat=p.TraceFormat.Text,this._connection.trace(this._trace,this._tracer,{sendNotification:!0,traceFormat:this._traceFormat}).catch(this.error.bind(this,"Updating trace failed with error"))}registerFeatures(e){for(let t of e)this.registerFeature(t,"")}registerFeature(e,t){let{disabledFeatures:i}=this._clientOptions;if(!(i.length>0&&i.includes(t))&&(this._features.push(e),uC.is(e))){let r=e.registrationType;this._dynamicFeatures.set(r.method,e)}}getStaticFeature(e){return this._features.find(t=>lC.is(t)&&t.method==e)}getFeature(e){return this._dynamicFeatures.get(e)}registerBuiltinFeatures(){this.registerFeature(new wu(this),"configuration"),this.registerFeature(new $C(this,this._syncedDocuments),"document"),this.registerFeature(new GC(this),"document"),this.registerFeature(new XC(this,this._syncedDocuments),"document"),this.registerFeature(new zC(this),"willSave"),this.registerFeature(new KC(this),"willSaveWaitUntil"),this.registerFeature(new QC(this),"didSave"),this.registerFeature(new IC(this),"fileSystemWatcher"),this.registerFeature(new fC(this),"completion"),this.registerFeature(new OC(this),"hover"),this.registerFeature(new UC(this),"signatureHelp"),this.registerFeature(new WC(this),"references"),this.registerFeature(new yC(this),"definition"),this.registerFeature(new wC(this),"documentHighlight"),this.registerFeature(new CC(this),"documentSymbol"),this.registerFeature(new hC(this),"codeAction"),this.registerFeature(new gC(this),"codeLens"),this.registerFeature(new FC(this),"documentFormatting"),this.registerFeature(new MC(this),"documentRangeFormatting"),this.registerFeature(new jC(this),"documentOnTypeFormatting"),this.registerFeature(new YC(this),"rename"),this.registerFeature(new xC(this),"documentLink"),this.registerFeature(new SC(this),"executeCommand"),this.registerFeature(new mC(this),"pullConfiguration"),this.registerFeature(new VC(this),"typeDefinition"),this.registerFeature(new AC(this),"implementation"),this.registerFeature(new bC(this),"declaration"),this.registerFeature(new pC(this),"colorProvider"),this.registerFeature(new LC(this),"foldingRange"),this.registerFeature(new ZC(this),"selectionRange"),this.registerFeature(new dC(this),"callHierarchy"),this.registerFeature(new qC(this),"progress"),this.registerFeature(new BC(this),"linkedEditing"),this.registerFeature(new DC(this),"fileEvents"),this.registerFeature(new TC(this),"fileEvents"),this.registerFeature(new kC(this),"fileEvents"),this.registerFeature(new PC(this),"fileEvents"),this.registerFeature(new RC(this),"fileEvents"),this.registerFeature(new _C(this),"fileEvents"),this.registerFeature(new JC(this),"semanticTokens"),this.registerFeature(new NC(this),"inlayHint"),this.registerFeature(new HC(this),"inlineValue"),this.registerFeature(new vC(this),"pullDiagnostic"),this.registerFeature(new eS(this),"typeHierarchy"),this.registerFeature(new aS(this),"workspaceSymbol"),this.clientOptions.workspaceFolder===void 0&&this.registerFeature(new sS(this),"workspaceFolders")}registerProposedFeatures(){this.registerFeatures(ybe.createAll(this))}fillInitializeParams(e){for(let t of this._features)it(t.fillInitializeParams)&&t.fillInitializeParams(e)}computeClientCapabilities(){let e={};W(e,"workspace").applyEdit=!0;let t=W(W(e,"workspace"),"workspaceEdit");t.documentChanges=!0,t.resourceOperations=[p.ResourceOperationKind.Create,p.ResourceOperationKind.Rename,p.ResourceOperationKind.Delete],t.failureHandling=p.FailureHandlingKind.Undo,t.normalizesLineEndings=!0,t.changeAnnotationSupport={groupsOnLabel:!1};let i=W(W(e,"textDocument"),"publishDiagnostics");i.relatedInformation=!0,i.versionSupport=!0,i.tagSupport={valueSet:[Ji.Unnecessary,Ji.Deprecated]},i.codeDescriptionSupport=!0,i.dataSupport=!0;let r=W(e,"window"),o=W(r,"showMessage");o.messageActionItem={additionalPropertiesSupport:!0};let s=W(r,"showDocument");s.support=!0;let a=W(e,"general");a.regularExpressions={engine:"ECMAScript",version:"ES2020"},a.markdown={parser:"marked",version:"4.0.10"},a.positionEncodings=["utf-16"],a.staleRequestSupport={cancel:!0,retryOnContentModified:Array.from(lS.RequestsToCancelOnContentModified)};for(let l of this._features)l.fillClientCapabilities(e);return e}initializeFeatures(e){let t=this._clientOptions.documentSelector;for(let i of this._features)it(i.preInitialize)&&i.preInitialize(this._capabilities,t);for(let i of this._features)i.initialize(this._capabilities,t)}handleRegistrationRequest(e){if(!this.clientOptions.disableDynamicRegister){if(!this.isRunning()){for(let t of e.registrations)this._ignoredRegistrations.add(t.id);return}for(let t of e.registrations){let i=this._dynamicFeatures.get(t.method);if(!i){this.error(`No feature implementation for ${t.method} found. Registration failed.`);return}let r=t.registerOptions??{};r.documentSelector=r.documentSelector??this._clientOptions.documentSelector;let o={id:t.id,registerOptions:r};i.register(o)}}}handleUnregistrationRequest(e){return new Promise(t=>{for(let i of e.unregisterations){if(this._ignoredRegistrations.has(i.id))continue;let r=this._dynamicFeatures.get(i.method);r&&r.unregister(i.id)}t()})}setDiagnostics(e,t){var r;if(!this._diagnostics)return;if(this.clientOptions.separateDiagnostics&&t.length>0){let o=new Map;o.set(e,t);for(let s of t){if((r=s.relatedInformation)!=null&&r.length){let a=`${s.message} + +Related diagnostics: +`;for(let l of s.relatedInformation){let u=R.basename(A.parse(l.location.uri).fsPath),c=l.location.range.start.line;a=`${a} +${u}(line ${c+1}): ${l.message}`;let d=o.get(l.location.uri)||[];d.push(Ur.create(l.location.range,l.message,nt.Hint,s.code,s.source)),o.set(l.location.uri,d)}s.message=a}this._diagnostics.set(Array.from(o))}}else this._diagnostics.set(e,t)}handleApplyWorkspaceEdit(e){let t=e.edit,i=new Map;b.textDocuments.forEach(o=>i.set(o.uri.toString(),o));let r=!1;if(t.documentChanges){for(let o of t.documentChanges)if(ei.is(o)&&o.textDocument.version&&o.textDocument.version>=0){let s=i.get(o.textDocument.uri);if(s&&s.version!==o.textDocument.version){r=!0;break}}}return r?Promise.resolve({applied:!1}):b.applyEdit(e.edit).then(o=>({applied:o}))}handleFailedRequest(e,t,i,r){if(t&&t.isCancellationRequested)return r;if(i instanceof p.ResponseError){if(i.code===p.ErrorCodes.PendingResponseRejected||i.code===p.ErrorCodes.ConnectionInactive)return r;if(i.code===p.LSPErrorCodes.RequestCancelled||i.code===p.LSPErrorCodes.ServerCancelled)throw i.data!=null?new yu(i.data):new Ct;if(i.code===p.LSPErrorCodes.ContentModified){if(lS.RequestsToCancelOnContentModified.has(e.method))throw new Ct;return r}}throw this.error(`Request ${e.method} failed.`,i),i}logFailedRequest(e,t){t instanceof p.ResponseError&&t.code===p.LSPErrorCodes.RequestCancelled||this.error(`Request ${e.method} failed.`,t)}},km=lS;km.RequestsToCancelOnContentModified=new Set([p.InlayHintRequest.method,p.SemanticTokensRequest.method,p.SemanticTokensRangeRequest.method,p.SemanticTokensDeltaRequest.method]);ybe={createAll:n=>[]}});function xbe(n,e){if(R.isAbsolute(n))return n;let t=Cbe();if(t!==void 0){let i=R.join(t,n);if(F.existsSync(i))return i}if(e!==void 0){let i=R.join(e,n);if(F.existsSync(i))return i}return n}function Cbe(){let n=b.workspaceFolders;return!n||n.length===0?void 0:n[0].uri}function Sbe(n){let e=n&&n.cwd;return e&&!R.isAbsolute(e)&&(e=R.join(b.cwd,e)),e||(e=b.cwd),new Promise(t=>{F.lstat(e,(i,r)=>{t(!i&&r.isDirectory()?e:void 0)})})}function Dbe(n){return n?n.some(e=>vbe.some(t=>e.startsWith(t))||wbe.some(t=>e===t)):!1}var dS,vbe,wbe,cz,P1,pS,hS,R1,_1,E1,Nd,gS,I1=D(()=>{"use strict";Ce();ee();Xe();ce();Nl();$();he();k1();k1();dS=J("language-client-index"),vbe=["--debug=","--debug-brk=","--inspect=","--inspect-brk="],wbe=["--debug","--debug-brk","--inspect","--inspect-brk"],cz=ge(2e3,100);(e=>{function n(t){return Ue(t.command)}e.is=n})(P1||(P1={}));pS=(r=>(r[r.stdio=0]="stdio",r[r.ipc=1]="ipc",r[r.pipe=2]="pipe",r[r.socket=3]="socket",r))(pS||{});(e=>{function n(t){let i=t;return i&&i.kind===3&&Xt(i.port)}e.isSocket=n})(hS||(hS={}));(e=>{function n(t){return Ue(t.module)}e.is=n})(R1||(R1={}));(e=>{function n(t){let i=t;return i&&i.writer!==void 0&&i.reader!==void 0}e.is=n})(_1||(_1={}));(e=>{function n(t){let i=t;return i&&i.process!==void 0&&typeof i.detached=="boolean"}e.is=n})(E1||(E1={}));Nd=class extends km{constructor(t,i,r,o,s){let a,l,u,c,d;Ue(i)?(a=t,l=i,u=r,c=o,d=!!s):(a=t.toLowerCase(),l=t,u=i,c=r,d=o);super(a,l,c);this._serverOptions=u,this._forceDebug=!!d,this._isInDebugMode=!!d}stop(t=cz){return super.stop(t).then(()=>{if(this._serverProcess){let i=this._serverProcess;this._serverProcess=void 0,(this._isDetached===void 0||!this._isDetached)&&this.checkProcessDied(i),this._isDetached=void 0}},i=>{if(this._serverProcess&&i.message.includes("timed out")){this._serverProcess.kill("SIGKILL"),this._serverProcess=void 0;return}throw i})}get serviceState(){return this._state}checkProcessDied(t){!t||t.pid===void 0||setTimeout(()=>{try{process.kill(t.pid,0),Fc(t)}catch{}},cz)}handleConnectionClosed(){this._serverProcess=void 0,super.handleConnectionClosed()}get isInDebugMode(){return this._isInDebugMode}async restart(){await this.stop(),this.isInDebugMode?(await new Promise(t=>setTimeout(t,1e3)),await this._start()):await this._start()}createMessageTransports(t){function i(u,c){if(!u&&!c)return;let d=Object.create(null);return Object.keys(process.env).forEach(h=>d[h]=process.env[h]),u&&Object.keys(u).forEach(h=>d[h]=u[h]),d}function r(u){if(u.stdin===null||u.stdout===null||u.stderr===null)throw new Error("Process created without stdio streams")}let o=this._serverOptions,s=this.logMessage.bind(this);if(it(o))return o().then(u=>{if(Ad.is(u))return this._isDetached=!!u.detached,u;if(_1.is(u))return this._isDetached=!!u.detached,{reader:new p.StreamMessageReader(u.reader),writer:new p.StreamMessageWriter(u.writer)};{let c;return E1.is(u)?(c=u.process,this._isDetached=u.detached):(c=u,this._isDetached=!1),c.stderr.on("data",s),{reader:new p.StreamMessageReader(c.stdout),writer:new p.StreamMessageWriter(c.stdin)}}});let a,l=o;return l.run||l.debug?typeof v8debug=="object"||this._forceDebug||Dbe(process.execArgv)?a=l.debug:a=l.run:a=o,Sbe(a.options).then(u=>{if(R1.is(a)&&a.module){let c=a,d=c.transport||0,h,g=c.runtime?xbe(c.runtime,u):void 0;return new Promise((f,m)=>{let y=c.args&&c.args.slice()||[];d===1?y.push("--node-ipc"):d===0?y.push("--stdio"):d===2?(h=(0,p.generateRandomPipeName)(),y.push(`--pipe=${h}`)):hS.isSocket(d)&&y.push(`--socket=${d.port}`),y.push(`--clientProcessId=${process.pid}`);let w=c.options||Object.create(null);if(w.env=i(w.env,!0),w.execArgv=w.execArgv||[],w.cwd=u,w.silent=!0,g&&(w.execPath=g),d===1||d===0){let x=fn.fork(c.module,y||[],w);r(x),this._serverProcess=x,dS.info(`Language server "${this.id}" started with ${x.pid}`),x.stderr.on("data",s),d===1?(x.stdout.on("data",s),f({reader:new p.IPCMessageReader(this._serverProcess),writer:new p.IPCMessageWriter(this._serverProcess)})):f({reader:new p.StreamMessageReader(x.stdout),writer:new p.StreamMessageWriter(x.stdin)})}else{if(d===2)return(0,p.createClientPipeTransport)(h).then(x=>{let C=fn.fork(c.module,y||[],w);r(C),dS.info(`Language server "${this.id}" started with ${C.pid}`),this._serverProcess=C,C.stderr.on("data",s),C.stdout.on("data",s),x.onConnected().then(P=>{f({reader:P[0],writer:P[1]})})});if(hS.isSocket(d))return(0,p.createClientSocketTransport)(d.port).then(x=>{let C=fn.fork(c.module,y||[],w);r(C),this._serverProcess=C,dS.info(`Language server "${this.id}" started with ${C.pid}`),C.stderr.on("data",s),C.stdout.on("data",s),x.onConnected().then(P=>{f({reader:P[0],writer:P[1]})})})}})}else if(P1.is(a)&&a.command){let c=a,d=c.args||[],h=Object.assign({},c.options);h.env=h.env?Object.assign({},process.env,h.env):process.env,h.cwd=h.cwd||u;let g=b.expand(a.command),f=fn.spawn(g,d,h);return f.on("error",m=>{this.error(m.message,m)}),!f||!f.pid?Promise.reject(new Error(`Launching server "${this.id}" using command ${c.command} failed.`)):(dS.info(`Language server "${this.id}" started with ${f.pid}`),f.on("exit",m=>{m!=0&&this.error(`${c.command} exited with code: ${m}`)}),f.stderr.on("data",m=>this.outputChannel.append(Ue(m)?m:m.toString(t))),this._serverProcess=f,this._isDetached=!!h.detached,Promise.resolve({reader:new p.StreamMessageReader(f.stdout),writer:new p.StreamMessageWriter(f.stdin)}))}return Promise.reject(`Unsupported server configuration ${JSON.stringify(o,null,2)}`)})}logMessage(t){let i=this.clientOptions.stdioEncoding;this.outputChannel.append(Ue(t)?t:t.toString(i))}},gS=class{constructor(e,t){this._client=e;this._setting=t;this._listeners=[]}start(){return b.onDidChangeConfiguration(e=>{e.affectsConfiguration(this._setting)&&this.onDidChangeConfiguration()},null,this._listeners),this.onDidChangeConfiguration(),{dispose:()=>{Y(this._listeners),this._client.dispose()}}}onDidChangeConfiguration(){let e=this._setting.indexOf("."),t=e>=0?this._setting.substr(0,e):this._setting,i=e>=0?this._setting.substr(e+1):void 0,r=i?b.getConfiguration(t).get(i,!0):b.getConfiguration(t);r&&this._client.needsStart()?this._client.start().catch(o=>this._client.error("Start failed after configuration change",o,"force")):!r&&this._client.needsStop()&&this._client.stop().catch(o=>this._client.error("Stop failed after configuration change",o,"force"))}}});function Tbe(n){let e=n.map(t=>typeof t=="string"?t:t.language);return e=e.filter(t=>typeof t=="string"),Array.from(new Set(e))}function kbe(n,e,t,i){let{command:r,module:o,port:s,args:a,filetypes:l}=t;if(a=a||[],!l)return k.showErrorMessage(`Wrong configuration of LS "${e}", filetypes not found`),null;if(!r&&!o&&!s)return k.showErrorMessage(`Wrong configuration of LS "${e}", no command or module specified.`),null;let u;if(o){if(o=b.expand(o),!F.existsSync(o))return k.showErrorMessage(`Module file "${o}" not found for LS "${e}"`),null;u={module:o,runtime:t.runtime??process.execPath,args:a,transport:_be(t),options:Ebe(t)}}else r?u={command:r,args:a,options:Ibe(t)}:u=()=>new Promise((f,m)=>{let y=new Oq.Socket,w=t.host??"127.0.0.1";Cu.info(`languageserver "${n}" connecting to ${w}:${s}`),y.connect(s,w,()=>{f({reader:y,writer:y})}),y.on("error",x=>{m(new Error(`Connection error for ${n}: ${x.message}`))})});let c=Array.from(t.disabledFeatures||[]);for(let f of["disableWorkspaceFolders","disableCompletion","disableDiagnostics"])if(t[f]===!0){Cu.warn(`Language server config "${f}" is deprecated, use "disabledFeatures" instead.`);let m=f.slice(7);c.push(m[0].toLowerCase()+m.slice(1))}let d=!!t.disableSnippetCompletion,h=le(t.ignoredRootPaths),g={workspaceFolder:i==null?void 0:{name:R.basename(i.fsPath),uri:i.toString()},rootPatterns:t.rootPatterns,requireRootPattern:t.requireRootPattern,ignoredRootPaths:h.map(f=>b.expand(f)),disableSnippetCompletion:d,disableDynamicRegister:!!t.disableDynamicRegister,disabledFeatures:c,formatterPriority:t.formatterPriority,documentSelector:gz(t.filetypes,t.additionalSchemes),revealOutputChannelOn:Rbe(t.revealOutputChannelOn),synchronize:{configurationSection:`${n}.settings`},diagnosticCollectionName:e,outputChannelName:n,stdioEncoding:t.stdioEncoding,progressOnInitialization:t.progressOnInitialization===!0,initializationOptions:t.initializationOptions??{}};return t.maxRestartCount&&(g.connectionOptions={maxRestartCount:t.maxRestartCount}),[g,u]}function Pbe(n,e){let t=[],i=["module","command","transport"];for(let r of i){let o=e[r];o&&typeof o!="string"&&t.push(`"${r}" field of languageserver ${n} should be string`)}return e.transportPort!=null&&typeof e.transportPort!="number"&&t.push(`"transportPort" field of languageserver ${n} should be number`),(!Array.isArray(e.filetypes)||!e.filetypes.every(r=>typeof r=="string"))&&t.push(`"filetypes" field of languageserver ${n} should be array of string`),e.additionalSchemes&&(!Array.isArray(e.additionalSchemes)||e.additionalSchemes.some(r=>typeof r!="string"))&&t.push(`"additionalSchemes" field of languageserver ${n} should be array of string`),t.length?(Cu.error(`Invalid language server configuration for ${n}`,t.join(` +`)),!1):!0}function Rbe(n){switch(n){case"info":return 1;case"warn":return 2;case"error":return 3;case"never":return 4;default:return 4}}function gz(n,e){let t=[],i=["file","untitled"].concat(e||[]);return n?(n.forEach(r=>{t.push(...i.map(o=>({language:r,scheme:o})))}),t):i.map(r=>({scheme:r}))}function _be(n){let{transport:e,transportPort:t}=n;return!e||e=="ipc"?1:e=="stdio"?0:e=="pipe"?2:{kind:3,port:t}}function Ebe(n){return{cwd:n.cwd,execArgv:n.execArgv??[],env:n.env??void 0}}function Ibe(n){return{cwd:n.cwd,detached:!!n.detached,shell:!!n.shell,env:n.env??void 0}}function dz(n){switch(n){case 2:return 3;case 3:return 1;case 1:return 5;default:return}}function hz(n){switch(n){case 2:return"running";case 3:return"starting";case 1:return"stopped";default:return"unknown"}}function Lbe(n){switch(n){case 0:return"init";case 3:return"running";case 1:return"starting";case 2:return"startFailed";case 4:return"stopping";case 5:return"stopped";default:return"unknown"}}var Cu,F1,L1,Sn,Pm=D(()=>{"use strict";Je();Re();I1();Ce();ee();Se();ce();Be();$();We();he();Cu=J("services"),F1=(s=>(s[s.Initial=0]="Initial",s[s.Starting=1]="Starting",s[s.StartFailed=2]="StartFailed",s[s.Running=3]="Running",s[s.Stopping=4]="Stopping",s[s.Stopped=5]="Stopped",s))(F1||{}),L1=class{constructor(){this.registered=new Map;this.disposables=[];this.pendingNotifications=new Map;this.registLanguageClient=this.registerLanguageClient.bind(this),this.regist=this.register.bind(this)}init(){b.onDidOpenTextDocument(i=>{this.start(i)},null,this.disposables);let e=i=>{for(let r of i)this.registerClientsFromFolder(r)};b.onDidChangeWorkspaceFolders(i=>{e(i.added)},null,this.disposables);let t=b.initialConfiguration.get("languageserver",{});this.registerClientsByConfig(t),e(b.workspaceFolders),b.onDidChangeConfiguration(i=>{if(i.affectsConfiguration("languageserver")){let r=b.getConfiguration("languageserver",null);this.registerClientsByConfig(r)}},null,this.disposables)}registerClientsFromFolder(e){let t=A.parse(e.uri),r=b.getConfiguration(void 0,t).inspect("languageserver").workspaceFolderValue;this.registerClientsByConfig(r,t)}register(e){let{id:t}=e;if(!this.registered.get(t))return this.registered.set(t,e),this.tryStartService(e),e.onServiceReady(()=>{Cu.info(`service ${t} started`)},null,this.disposables),p.Disposable.create(()=>{!this.registered.has(t)||(e.dispose(),this.registered.delete(t))})}tryStartService(e){if(_.ready)this.shouldStart(e)&&e.start();else{let t=_.on("ready",()=>{t.dispose(),this.shouldStart(e)&&e.start()})}}getService(e){let t=this.registered.get(e);return t||(t=this.registered.get(`languageserver.${e}`)),t}shouldStart(e){if(e.state!=0)return!1;let t=e.selector;for(let i of b.documents)if(b.match(t,i.textDocument))return!0;return!1}async start(e){let t=[];for(let i of this.registered.values())i.state==0&&b.match(i.selector,e)>0&&t.push(i);await Promise.allSettled(t.map(i=>i.start()))}stop(e){let t=this.registered.get(e);if(t)return Promise.resolve(t.stop())}async toggle(e){let t=this.registered.get(e);if(!t)throw new Error(`Service ${e} not found`);let{state:i}=t;i==3?await Promise.resolve(t.stop()):i==0||i==2?await t.start():i==5&&await t.restart()}getServiceStats(){let e=[];for(let[t,i]of this.registered)e.push({id:t,languageIds:Tbe(i.selector),state:Lbe(i.state)});return e}registerClientsByConfig(e,t){for(let i of Object.keys($e(e))){let r=e[i];!Pbe(i,r)||this.registerLanguageClient(i,r,t)}}async getLanguageClient(e){let t=this.getService(e);if(t||await Zi(100),t=this.getService(e),!t||!t.client)throw new Error(`Language server ${e} not found`);return t.client}async sendNotification(e,t,i){let r=await this.getLanguageClient(e);await Promise.resolve(r.sendNotification(t,i))}async sendRequest(e,t,i,r){let o=await this.getLanguageClient(e);return r=r??p.CancellationToken.None,await Promise.resolve(o.sendRequest(t,i,r))}registerNotification(e,t){let i=this.getService(e);i&&i.client&&i.client.onNotification(t,async o=>{this.sendNotificationVim(e,t,o)});let r=this.pendingNotifications.get(e)??[];r.push({id:e,method:t}),this.pendingNotifications.set(e,r)}getRegisteredNotifications(e){return e=e.startsWith("languageserver")?e.slice(15):e,this.pendingNotifications.get(e)??[]}sendNotificationVim(e,t,i){b.nvim.call("coc#do_notify",[e,t,i],!0)}registerLanguageClient(e,t,i){let r=typeof e=="string"?`languageserver.${e}`:e.id,o=[],s=new p.Emitter,a=typeof e=="string"?null:e;if(this.registered.has(r))return p.Disposable.create(()=>{});a&&typeof a.dispose=="function"&&o.push(a);let l=!1,u={id:r,client:a,name:typeof e=="string"?e:e.name,selector:typeof e=="string"?gz(t.filetypes,t.additionalSchemes):e.clientOptions.documentSelector,state:a&&a.state===2?3:0,onServiceReady:s.event,start:async()=>{if(!l){if(typeof e=="string"&&!a){let c=b.getConfiguration(void 0,i).get(`languageserver.${e}`,{}),d=kbe(r,e,c,i);if(!d||c.enable===!1)return;a=new Nd(r,e,d[1],d[0]),u.selector=d[0].documentSelector,u.client=a,o.push(a)}l=!0;for(let c of this.getRegisteredNotifications(r))u.client.onNotification(c.method,async d=>{this.sendNotificationVim(c.id,c.method,d)});a.onDidChangeState(c=>{let{oldState:d,newState:h}=c;u.state=dz(h);let g=hz(d),f=hz(h);Cu.info(`LanguageClient ${a.name} state change: ${g} => ${f}`)},null,o)}try{a.needsStart()?(u.state=1,Cu.debug(`starting service: ${r}`),await a.start(),s.fire(void 0)):u.state=dz(a.state)}catch(c){k.showErrorMessage(`Server ${r} failed to start: ${c}`),Cu.error(`Server ${r} failed to start:`,c),u.state=2}},dispose:async()=>{s.dispose(),Y(o)},stop:async()=>{!a||!a.needsStop()||await Promise.resolve(a.stop())},restart:async()=>{a?(u.state=1,await a.restart()):await u.start()}};return this.register(u)}dispose(){Y(this.disposables);for(let e of this.registered.values())e.dispose();this.registered.clear()}};Sn=new L1});var Rm,pz=D(()=>{"use strict";Pm();ee();qo();Wo();Rm=class extends pi{constructor(){super();this.defaultAction="toggle";this.description="registered services of coc.nvim";this.name="services";this.addAction("toggle",async t=>{let{id:i}=t.data;await Sn.toggle(i),await Zi(50)},{persist:!0,reload:!0})}async loadItems(t){let i=Sn.getServiceStats();return Mr(this.alignColumns,i.map(r=>({label:[r.state=="running"?"*":" ",r.id,`[${r.state}]`,r.languageIds.join(", ")],data:{id:r.id}})))}doHighlight(){let{nvim:t}=this;t.pauseNotification(),t.command("syntax match CocServicesPrefix /\\v^./ contained containedin=CocServicesLine",!0),t.command("syntax match CocServicesName /\\v%3c\\S+/ contained containedin=CocServicesLine",!0),t.command("syntax match CocServicesStat /\\v\\t\\[\\w+\\]/ contained containedin=CocServicesLine",!0),t.command("syntax match CocServicesLanguages /\\v(\\])@<=.*$/ contained containedin=CocServicesLine",!0),t.command("highlight default link CocServicesPrefix Special",!0),t.command("highlight default link CocServicesName Type",!0),t.command("highlight default link CocServicesStat Statement",!0),t.command("highlight default link CocServicesLanguages Comment",!0),t.resumeNotification(!1,!0)}}});var _m,fz=D(()=>{"use strict";ae();Je();Su();qo();Wo();_m=class extends pi{constructor(){super();this.defaultAction="toggle";this.description="registered completion sources";this.name="sources";this.addAction("toggle",async t=>{let{name:i}=t.data;_i.toggleSource(i)},{persist:!0,reload:!0}),this.addAction("refresh",async t=>{let{name:i}=t.data;await _i.refresh(i)},{persist:!0,reload:!0}),this.addAction("open",async(t,i)=>{let{location:r}=t;r&&await this.jumpTo(r,null,i)})}async loadItems(){return _i.sourceStats().map(i=>{let r=i.disabled?" ":"*",o;return i.filepath&&(o=Ze.create(A.file(i.filepath).toString(),M.create(0,0,0,0))),{label:`${r} ${hm(i.name,22)} ${hm("["+i.shortcut+"]",10)} ${hm(i.triggerCharacters.join(""),10)} ${hm(i.priority.toString(),3)} ${i.filetypes.join(",")}`,location:o,data:{name:i.name}}})}doHighlight(){let{nvim:t}=this;t.pauseNotification(),t.command("syntax match CocSourcesPrefix /\\v^./ contained containedin=CocSourcesLine",!0),t.command("syntax match CocSourcesName /\\v%3c\\S+/ contained containedin=CocSourcesLine",!0),t.command("syntax match CocSourcesType /\\v%25v.*%36v/ contained containedin=CocSourcesLine",!0),t.command("syntax match CocSourcesPriority /\\v%46v.*%52v/ contained containedin=CocSourcesLine",!0),t.command("syntax match CocSourcesFileTypes /\\v\\S+$/ contained containedin=CocSourcesLine",!0),t.command("highlight default link CocSourcesPrefix Special",!0),t.command("highlight default link CocSourcesName Type",!0),t.command("highlight default link CocSourcesPriority Number",!0),t.command("highlight default link CocSourcesFileTypes Comment",!0),t.command("highlight default link CocSourcesType Statement",!0),t.resumeNotification(!1,!0)}}});function mz(n){if(!Ze.is(n))return Ze.create(n.uri,M.create(0,0,0,0));let e=Ze.create(n.uri,M.create(n.range.start,n.range.start));return e.targetRange=n.range,e}function Fbe(n,e){return n.data.score!=e.data.score?e.data.score-n.data.score:n.data.kind!=e.data.kind?n.data.kind-e.data.kind:n.data.file.length-e.data.file.length}var Em,bz=D(()=>{"use strict";ae();Te();Se();wm();ce();$();pe();he();Wo();pm();Em=class extends ho{constructor(){super(...arguments);this.interactive=!0;this.description="search workspace symbols";this.detail="Symbols list is provided by server, it works on interactive mode only.";this.fuzzyMatch=b.createFuzzyMatch();this.name="symbols";this.options=[{name:"-k, -kind KIND",description:"Filter symbols by kind.",hasValue:!0}]}async loadItems(t,i){let{input:r}=t,o=this.parseArguments(t.args),s=o.kind?o.kind.toString().toLowerCase():"";if(!I.hasProvider("workspaceSymbols",{uri:"file:///1",languageId:""}))throw new Error("No workspace symbols provider registered");let a=await I.getWorkspaceSymbols(r,i);if(i.isCancellationRequested)return[];let u=this.getConfig().get("excludes",[]),c=[];this.fuzzyMatch.setPattern(r,!0);for(let d of a){let h=js(d.kind);if(s&&h.toLowerCase()!=s)continue;let g=aC(d.location.uri,b.cwd);if(u.some(m=>si(g,m)))continue;let f=this.createListItem(r,d,h,g);c.push(f)}return this.fuzzyMatch.free(),c.sort(Fbe),c}async resolveItem(t){let i=t.data.original;if(!i||Ze.is(i.location))return null;let r=new p.CancellationTokenSource,o=await I.resolveWorkspaceSymbol(i,r.token);return o?(Ze.is(o.location)&&(i.location=o.location,t.location=mz(o.location)),t):null}createListItem(t,i,r,o){let{name:s}=i,a="",l=[],u=[s,`[${r}]`,o],c=["Normal","Typedef","Comment"];for(let h=0;h0){let h=this.fuzzyMatch.matchHighlights(s,"CocListSearch");h&&(d=h.score,l.push(...h.highlights))}return{label:a,filterText:"",ansiHighlights:l,location:mz(i.location),data:{original:i,input:t,kind:i.kind,file:o,score:d}}}}});function Obe(n,e,t){let i={};i[`list.source.${n}.defaultAction`]={type:"string",default:null,description:`Default action of "${n}" list.`},i[`list.source.${n}.defaultOptions`]={type:"array",default:e?["--interactive"]:[],description:`Default list options of "${n}" list, only used when both list option and argument are empty.`,uniqueItems:!0,items:{type:"string",enum:["--top","--normal","--no-sort","--input","--height","--tab","--strict","--regex","--ignore-case","--number-select","--reverse","--interactive","--auto-preview","--first","--no-quit"]}},i[`list.source.${n}.defaultArgs`]={type:"array",default:[],description:`Default argument list of "${n}" list, only used when list argument is empty.`,uniqueItems:!0,items:{type:"string"}};let r={scope:1,properties:i};return t&&(r.extensionInfo={id:t}),r}var Mbe,yz,jbe,M1,Wi,fS=D(()=>{"use strict";dw();To();Re();bu();Ce();ee();Jt();Ti();hs();ce();$();ko();pe();We();he();Za();c1();JG();UG();e9();i9();n9();r9();o9();s9();a9();pm();l9();pz();fz();bz();Mbe=J("list-manager"),yz=["","","","<2-LeftMouse>"],jbe=ai?50:0,M1=class{constructor(){this.plugTs=0;this.sessionsMap=new Map;this.disposables=[];this.listMap=new Map;mu.migrate(Kn)}get nvim(){return b.nvim}init(e){this.prompt=new am(e),this.mappings=new sm(this,e);let t=ut.get("selectedSignText","*");e.command(`sign define CocSelected text=${t} texthl=CocSelectedText linehl=CocSelectedLine`,!0),_.on("InputChar",this.onInputChar,this,this.disposables),_.on("FocusGained",async()=>{await this.getCurrentSession()&&this.prompt.drawPrompt()},null,this.disposables),_.on("WinEnter",r=>{let o=this.getSessionByWinid(r);o&&this.prompt.start(o.listOptions)},null,this.disposables);let i;_.on("WinLeave",r=>{clearTimeout(i),this.getSessionByWinid(r)&&(i=setTimeout(()=>{this.prompt.cancel()},jbe))},null,this.disposables),b.onDidChangeConfiguration(r=>{r.source!==0&&r.affectsConfiguration("list")&&this.mappings.createMappings()},null,this.disposables),this.prompt.onDidChangeInput(()=>{var r;(r=this.session)==null||r.onInputChange()})}registerLists(){this.registerList(new ym,!0),this.registerList(new ho,!0),this.registerList(new Em,!0),this.registerList(new xm,!0),this.registerList(new gm,!0),this.registerList(new mm(Wt.manager),!0),this.registerList(new fm(this),!0),this.registerList(new _m,!0),this.registerList(new Rm,!0),this.registerList(new vm(this.listMap),!0),this.registerList(new bm,!0)}async start(e){let t=this.parseArgs(e);if(!t)return;let{name:i}=t.list,r=this.sessionsMap.get(i);r&&r.dispose(),this.prompt.start(t.options);let o=new dm(this.nvim,this.prompt,t.list,t.options,t.listArgs);this.sessionsMap.set(i,o),this.lastSession=o;try{await o.start(e)}catch(s){if(this.nvim.call("coc#prompt#stop_prompt",["list"],!0),this.nvim.command('echo ""',!0),oc(s))return;k.showErrorMessage(`Error on "CocList ${i}": ${xr(s)}`),this.nvim.redrawVim(),Mbe.error(`Error on load ${i} list:`,s)}}getSessionByWinid(e){for(let t of this.sessionsMap.values())if(t&&t.winid==e)return this.lastSession=t,t;return null}async getCurrentSession(){let{id:e}=await this.nvim.window;for(let t of this.sessionsMap.values())if(t&&t.winid==e)return this.lastSession=t,t;return null}async resume(e){var t;if(!e)await((t=this.session)==null?void 0:t.resume());else{let i=this.sessionsMap.get(e);if(!i){k.showWarningMessage(`Can't find exists ${e} list`);return}await i.resume()}}async doAction(e){let t=this.lastSession;!t||await t.doAction(e)}async first(e){let t=this.getSession(e);t&&await t.first()}async last(e){let t=this.getSession(e);t&&await t.last()}async previous(e){let t=this.getSession(e);t&&await t.previous()}async next(e){let t=this.getSession(e);t&&await t.next()}getSession(e){return e?this.sessionsMap.get(e):this.session}async cancel(e=!0){this.prompt.cancel(),!!e&&this.session&&await this.session.hide()}reset(){this.prompt.cancel(),this.lastSession=void 0;for(let e of this.sessionsMap.values())e.dispose();this.sessionsMap.clear(),this.nvim.call("coc#prompt#stop_prompt",["list"],!0)}async switchMatcher(){var e;await((e=this.session)==null?void 0:e.switchMatcher())}async togglePreview(){let{nvim:e}=this;await e.call("coc#list#get_preview",[0])!=-1?(await e.call("coc#list#close_preview",[]),await e.command("redraw")):await this.doAction("preview")}async chooseAction(){let{lastSession:e}=this;e&&await e.chooseAction()}parseArgs(e){let t=[],i=!1,r=!1,o=!1,s=!1,a=!1,l=!1,u,c="",d="fuzzy",h="bottom",g=[],f=[],m;for(let x of e)if(!u&&x.startsWith("-"))f.push(x);else if(u)g.push(x);else{if(!/^\w+$/.test(x))return k.showErrorMessage(`Invalid list option: "${x}"`),null;u=x}u=u||"lists";let y=b.initialConfiguration.get(`list.source.${u}`);!f.length&&!g.length&&(f=ye(y==null?void 0:y.defaultOptions,[])),g.length||(g=ye(y==null?void 0:y.defaultArgs,[]));for(let x of f)if(x.startsWith("--input="))c=x.slice(8);else if(x.startsWith("--height="))m=hY(x.slice(9));else if(x=="--number-select"||x=="-N")o=!0;else if(x=="--auto-preview"||x=="-A")r=!0;else if(x=="--regex"||x=="-R")d="regex";else if(x=="--strict"||x=="-S")d="strict";else if(x=="--interactive"||x=="-I")i=!0;else if(x=="--top")h="top";else if(x=="--tab")h="tab";else if(x=="--ignore-case"||x=="--normal"||x=="--no-sort")t.push(x.slice(2));else if(x=="--first")a=!0;else if(x=="--reverse")l=!0;else if(x=="--no-quit")s=!0;else return k.showErrorMessage(`Invalid option "${x}" of list`),null;let w=this.listMap.get(u);return w?i&&!w.interactive?(k.showErrorMessage(`Interactive mode of "${u}" list not supported`),null):{list:w,listArgs:g,options:{numberSelect:o,autoPreview:r,height:m,reverse:l,noQuit:s,first:a,input:c,interactive:i,matcher:d,position:h,ignorecase:!!t.includes("ignore-case"),mode:t.includes("normal")?"normal":"insert",sort:!t.includes("no-sort")}}:(k.showErrorMessage(`List ${u} not found`),null)}async onInputChar(e,t,i){if(!t||e!="list")return;let{mode:r}=this.prompt,o=Date.now();if(t==""||this.plugTs&&o-this.plugTs<20){this.plugTs=o;return}if(t==""){await this.cancel();return}r=="insert"?await this.onInsertInput(t,i):await this.onNormalInput(t,i)}async onInsertInput(e,t){let{session:i}=this;if(yz.includes(e)){await this.onMouseEvent(e);return}if(!(!i||await i.doNumberSelect(e)||await this.mappings.doInsertKeymap(e)||t)){if(e.startsWith("<")&&e.endsWith(">")){await this.feedkeys(e,!1);return}for(let s of e){let a=s.codePointAt(0);if(a==65533||a<32||a>=127&&a<=159)return;await this.prompt.acceptCharacter(s)}}}async onNormalInput(e,t){if(yz.includes(e)){await this.onMouseEvent(e);return}await this.mappings.doNormalKeymap(e)||await this.feedkeys(e)}onMouseEvent(e){var t;return(t=this.session)==null?void 0:t.onMouseEvent(e)}async feedkeys(e,t=!0){let{nvim:i}=this;e=e.startsWith("<")&&e.endsWith(">")?`\\${e}`:e,await i.call("coc#prompt#stop_prompt",["list"]),await i.call("eval",[`feedkeys("${e}", "${t?"i":"in"}")`]),this.triggerCursorMoved(),this.prompt.start()}async command(e){let{nvim:t}=this;await t.call("coc#prompt#stop_prompt",["list"]),await t.command(e),this.triggerCursorMoved(),this.prompt.start()}async normal(e,t){let{nvim:i}=this;await i.call("coc#prompt#stop_prompt",["list"]),await i.command(`normal${t?"!":""} ${e}`),this.triggerCursorMoved(),this.prompt.start()}triggerCursorMoved(){this.nvim.isVim&&this.nvim.command("doautocmd CursorMoved",!0)}async call(e){if(this.session)return await this.session.call(e)}get session(){return this.lastSession}registerList(e,t=!1){let{name:i,interactive:r}=e,o;t||(o=ge(Ll(Error().stack),void 0));let s=this.deregisterList(i);this.listMap.set(i,e);let a=Obe(i,r,o);return s||b.configurations.updateConfigurations([a]),p.Disposable.create(()=>{this.deregisterList(i),di.as(Zl.Configuration).deregisterConfigurations([a])})}deregisterList(e){let t=this.listMap.get(e);return t?(typeof t.dispose=="function"&&t.dispose(),this.listMap.delete(e),!0):!1}get names(){return Array.from(this.listMap.keys())}get descriptions(){let e={};for(let t of this.listMap.keys()){let i=this.listMap.get(t);e[t]=i.description}return e}async loadItems(e){let t=[e],i=this.parseArgs(t);if(!i||!e)return;let{list:r,options:o,listArgs:s}=i,l=new p.CancellationTokenSource().token,u=await this.nvim.eval('[win_getid(),bufnr("%")]'),c=await r.loadItems({options:o,args:s,input:"",cwd:b.cwd,window:this.nvim.createWindow(u[0]),buffer:this.nvim.createBuffer(u[1]),listWindow:null},l);if(!c||Array.isArray(c))return c;let d=c;return await new Promise((g,f)=>{let m=[];d.on("data",y=>{y.label=ty(y.label),m.push(y)}),d.on("end",()=>{g(m)}),d.on("error",y=>{f(y),d.dispose()})})}toggleMode(){let e=this.lastSession;e&&e.toggleMode()}get isActivated(){var e;return((e=this.session)==null?void 0:e.winid)!=null}stop(){let e=this.lastSession;e&&e.stop()}dispose(){for(let e of this.sessionsMap.values())e.dispose();this.sessionsMap.clear(),this.lastSession=void 0,Y(this.disposables)}},Wi=new M1});function j1(n,e){let{range:t,newText:i}=n,r=e.length,o=i.length;if(r===0||o===0)return n;let{start:s,end:a}=t,l=0;for(let h=1;h<=Math.min(o,r)&&i[h-1]===e[h-1];h++)l=h;let u=0,c=Math.min(o-l,r-l);if(c>0)for(let h=1;h<=c&&i[o-h]===e[r-h];h++)u=h;let d=u==0?i.slice(l):i.slice(l,-u);return l>0&&(s=sn(s,i.slice(0,l))),u>0&&(a=sn(t.start,e.slice(0,-u))),Ye.replace(M.create(s,a),d)}function vz(n,e,t){let i=M.create(n,sn(n,t));return Ot(e,i)==0}function wz(n,e,t){if(t.lines.length=0;o--){let s=t.lines[o]??"";if(o===n.line){let a=e.lines[o].slice(0,n.character);if(!s.startsWith(a)){r=!1;break}}else if(s!==e.lines[o]){r=!1;break}}return r}function xz(n,e,t){let i=e.lines.length;if(t.lines.length{let l=s.match(/^\s*/)[0],u=l,c=l.startsWith(" ");return c&&t.insertSpaces?u=r.repeat(l.length):!c&&!t.insertSpaces&&(u=r.repeat(l.length/o)),(a==0||s.length==0?"":e)+u+s.slice(l.length)}),i.join(` +`)}function Dz(n){return!!(/^\s/.test(n)||n.indexOf(` +`)!==-1)}function Abe(n,e){return n.primary!==e.primary?n.primary?-1:1:n.index==0||e.index==0?n.index==0?1:-1:n.index-e.index}var Im,O1=D(()=>{"use strict";sp();ae();ee();Pt();Pr();PR();Fw();Im=class{constructor(e,t,i,r){this.snippetString=e;this.position=t;this.nvim=i;this.resolver=r}async init(e,t=!1){let i=e?Ew(e):void 0,o=new ws(!!e,i).parse(this.snippetString,!0);this.tmSnippet=o,await this.resolve(e),this.synchronize(),t||(this.nvim.call("coc#compat#del_var",["coc_selected_text"],!0),this.nvim.call("coc#compat#del_var",["coc_last_placeholder"],!0))}async resolve(e){let{snippet:t}=this.tmSnippet,{resolver:i,nvim:r}=this;if(i&&await t.resolveVariables(i),e&&e.noPython!==!0){let o=[];t.hasPython&&(o=o3(e)),await t.evalCodeBlocks(r,o)}}getRanges(e){let t=e.marker;if(e.value.length==0)return[];let r=this._placeholders.filter(l=>l.index==e.index).map(l=>l.range),o=this.tmSnippet.enclosingPlaceholders(t),s,a=t.parent;if(t instanceof Rt){let l=t.index;s=this.tmSnippet.placeholders.filter(u=>u.index==l&&u.parent==a)}else{let l=t.name;s=this.tmSnippet.variables.filter(u=>u.name==l&&u.parent==a)}return o.forEach(l=>{let u=this._placeholders.filter(c=>c.index==l.index&&c.marker!==l);if(!!u.length)for(let c of s){let d=this.tmSnippet.getTextBefore(c,l);u.forEach(h=>{if(h.transform)r.push(h.range);else{let g=h.range.start;r.push(M.create(sn(g,d),sn(g,d+c.toString())))}})}}),r.filter(l=>!Kt(l))}getSortedPlaceholders(e){let t=e?[e]:[],i=this._placeholders.filter(r=>r!==e&&!r.transform);return i.sort(Abe),t.push(...i),t}get hasPython(){return this.tmSnippet.pyBlocks.length>0}resetStartPosition(e){this.position=e,this.synchronize()}get start(){return Object.assign({},this.position)}get range(){return M.create(this.position,sn(this.position,this._text))}get text(){return this._text}get finalCount(){return this._placeholders.filter(e=>e.index==0).length}get placeholders(){return this._placeholders.map(e=>e.marker)}get firstPlaceholder(){let e=0;for(let t of this._placeholders)t.index==0||t.transform||(e==0||t.indext.marker===e)}getPlaceholder(e){let t=this._placeholders.filter(r=>r.index==e&&!r.transform),i=t.find(r=>r.primary);return ye(i,t[0])}getPrevPlaceholder(e){if(e<=1)return;let t=this._placeholders.filter(r=>r.index1;){e=e-1;let r=t.filter(o=>o.index==e);if(r.length){i=ye(r.find(o=>o.primary),r[0]);break}}return i}getNextPlaceholder(e){let t=this._placeholders.filter(s=>!s.transform),i,r=t.map(s=>s.index),o=Math.max.apply(null,r);for(let s=e+1;s<=o+1;s++){let a=s==o+1?0:s,l=t.filter(u=>u.index==a);if(l.length){i=l.find(u=>u.primary)||l[0];break}}return i}getPlaceholderByRange(e){return this._placeholders.find(t=>ri(e,t.range))}async insertSnippet(e,t,i,r){if(r){let{start:s,end:a}=e.range;this.nvim.setVar("coc_last_placeholder",{current_text:e.value,start:{line:s.line,col:s.character,character:s.character},end:{line:a.line,col:a.character,character:a.character}},!0)}let o=this.tmSnippet.insertSnippet(t,e.marker,i,r);return await this.resolve(r),this.synchronize(),o}getNewText(e,t){let{before:i,after:r}=e;if(!!t.startsWith(i)&&!(t.length{this.tmSnippet=l,this.synchronize()});let u=M.create(o,sn(o,a));if(await this.tmSnippet.update(this.nvim,s,i),r.isCancellationRequested)return;this.synchronize();let c=this.getTextBefore(s,a);return{text:this._text,delta:mw(t,Ye.replace(u,c))}}getTextBefore(e,t){let i=this._placeholders.find(r=>r.marker==e);return i?i.before:t}removeText(e,t){let i=this.tmSnippet.deleteText(e,t);return i&&this.synchronize(),i}synchronize(){let e=this.tmSnippet,{line:t,character:i}=this.position,r=oo.create("untitled:/1","snippet",0,e.toString()),{placeholders:o,variables:s,maxIndexNumber:a}=e,l=new Map,u=a+1;this._placeholders=[...o,...s].map(c=>{let d=e.offset(c),h=r.positionAt(d),g={line:t+h.line,character:h.line==0?i+h.character:h.character},f;if(c instanceof lo){let x=c.name;l.has(x)?f=l.get(x):(l.set(x,u),f=u,u=u+1)}else f=c.index;let m=c.toString(),y=sn(h,m);return{index:f,value:m,marker:c,transform:!!c.transform,range:M.create(g,sn(g,m)),before:r.getText(M.create(V.create(0,0),h)),after:r.getText(M.create(y,V.create(r.lineCount,0))),primary:c instanceof Rt&&c.primary===!0}}),this._text=this.tmSnippet.toString()}}});function Lm(n){return n<10?"0"+n:n.toString()}function Tz(n){let e,t,i,r=n.split(",");for(let o of r){if(e&&t&&i)break;if(!o.includes(":"))continue;let[s,a]=o.split(":");s.includes("s")?e=a:s.includes("e")?t=a:!i&&s==""&&(i=a)}return{start:e,end:t,single:i}}function Nbe(n){if(n.endsWith("%s"))return n.slice(0,-2).trim()}var Fm,kz=D(()=>{"use strict";ot();Je();ce();Be();Fm=class{constructor(e,t){this.nvim=e;this.workspaceFolder=t;this._variableToValue={};let i=new Date,r=i.getFullYear().toString();Object.assign(this._variableToValue,{CURRENT_YEAR:r,CURRENT_YEAR_SHORT:r.slice(-2),CURRENT_MONTH:Lm(i.getMonth()+1),CURRENT_DATE:Lm(i.getDate()),CURRENT_HOUR:Lm(i.getHours()),CURRENT_MINUTE:Lm(i.getMinutes()),CURRENT_SECOND:Lm(i.getSeconds()),CURRENT_DAY_NAME:i.toLocaleString("en-US",{weekday:"long"}),CURRENT_DAY_NAME_SHORT:i.toLocaleString("en-US",{weekday:"short"}),CURRENT_MONTH_NAME:i.toLocaleString("en-US",{month:"long"}),CURRENT_MONTH_NAME_SHORT:i.toLocaleString("en-US",{month:"short"}),TM_FILENAME:null,TM_FILENAME_BASE:null,TM_DIRECTORY:null,TM_FILEPATH:null,YANK:null,TM_LINE_INDEX:null,TM_LINE_NUMBER:null,TM_CURRENT_LINE:null,TM_CURRENT_WORD:null,TM_SELECTED_TEXT:null,VISUAL:null,CLIPBOARD:null,RELATIVE_FILEPATH:null,RANDOM:null,RANDOM_HEX:null,UUID:null,BLOCK_COMMENT_START:null,BLOCK_COMMENT_END:null,LINE_COMMENT:null,WORKSPACE_NAME:null,WORKSPACE_FOLDER:null})}async resolveValue(e){let{nvim:t}=this;if(["TM_FILENAME","TM_FILENAME_BASE","TM_DIRECTORY","TM_FILEPATH"].includes(e)){let i=await t.eval('expand("%:p")');if(e==="TM_FILENAME")return R.basename(i);if(e==="TM_FILENAME_BASE")return R.basename(i,R.extname(i));if(e==="TM_DIRECTORY")return R.dirname(i);if(e==="TM_FILEPATH")return i}if(e==="YANK")return await t.call("getreg",['""']);if(e==="TM_LINE_INDEX")return(await t.call("line",["."])-1).toString();if(e==="TM_LINE_NUMBER")return(await t.call("line",["."])).toString();if(e==="TM_CURRENT_LINE")return await t.call("getline",["."]);if(e==="TM_CURRENT_WORD")return await t.eval("expand('')");if(e==="TM_SELECTED_TEXT"||e=="VISUAL")return await t.eval("get(g:,'coc_selected_text', v:null)");if(e==="CLIPBOARD")return await t.eval("@*");if(e==="RANDOM")return Math.random().toString().slice(-6);if(e==="RANDOM_HEX")return Math.random().toString(16).slice(-6);if(e==="UUID")return me();if(["RELATIVE_FILEPATH","WORKSPACE_NAME","WORKSPACE_FOLDER"].includes(e)){let i=await t.eval('expand("%:p")'),r=this.workspaceFolder.getWorkspaceFolder(A.file(i));if(e==="RELATIVE_FILEPATH")return this.workspaceFolder.getRelativePath(i);if(e==="WORKSPACE_NAME")return r.name;if(e==="WORKSPACE_FOLDER")return A.parse(r.uri).fsPath}if(e==="LINE_COMMENT"){let i=await t.eval("&commentstring"),r=Nbe(i);if(r)return r;let o=await t.eval("&comments"),{single:s}=Tz(o);return s}if(["BLOCK_COMMENT_START","BLOCK_COMMENT_END"].includes(e)){let i=await t.eval("&comments"),{start:r,end:o}=Tz(i);if(e==="BLOCK_COMMENT_START")return r;if(e==="BLOCK_COMMENT_END")return o}}async resolve(e){let t=e.name,i=this._variableToValue[t];if(i!=null)return i.toString();if(En(this._variableToValue,t)){let r=await this.resolveValue(t);return!r&&e.children.length?e.toString():r==null?"":r.toString()}return e.children.length?e.toString():t}}});var As,A1,Mm,Pz=D(()=>{"use strict";ae();Ce();fs();Be();Pt();$();pe();We();he();Fw();O1();kz();As=J("snippets-session"),A1="snippets",Mm=class{constructor(e,t,i){this.nvim=e;this.document=t;this.config=i;this.mutex=new Oi;this._applying=!1;this._isActive=!1;this._snippet=null;this._onCancelEvent=new p.Emitter;this.onCancel=this._onCancelEvent.event;this.disposable=t.onDocumentChange(async r=>{if(this._applying||!this._isActive)return;let o=r.contentChanges;await this.synchronize({version:r.textDocument.version,change:o[0]})})}async start(e,t,i=!0,r){let{document:o}=this,s=this.getReplacePlaceholder(t),a=[];if(s){let l=this.snippet.range,u=o.textDocument.getText(l),c=Cz(s.value,s.range,t);this.current=await this.snippet.insertSnippet(s,e,c,r);let d=j1({range:l,newText:this.snippet.text},u);a.push(d)}else{let l=new Fm(this.nvim,b.workspaceFolderControl),u=new Im(e,t.start,this.nvim,l);if(await u.init(r),this._snippet=u,this.current=u.firstPlaceholder.marker,a.push(Ye.replace(t,u.text)),e.replace(/\$0$/,"").endsWith(` +`)){let c=o.getline(t.start.line),d=c.slice(t.end.character);if(d.length){let h=t.end.character,g=d.match(/^\s*/)[0].length,f=M.create(t.end.line,h,t.end.line,h+g);a.push(Ye.replace(f,c.match(/^\s*/)[0]))}}}if(await this.applyEdits(a),this.textDocument=o.textDocument,this.activate(),i&&this.current){let l=this.snippet.getPlaceholderByMarker(this.current);await this.selectPlaceholder(l,!0)}return this._isActive}async applyEdits(e){this._applying=!0,await this.document.applyEdits(e),this._applying=!1}getReplacePlaceholder(e){if(!this.snippet)return;let t=this.findPlaceholder(e);if(!(!t||t.index==0))return t}activate(){this._isActive||(this._isActive=!0,this.nvim.call("coc#snippet#enable",[this.config.preferComplete?1:0],!0))}deactivate(){this.cancel(),this._isActive&&(this.disposable.dispose(),this._isActive=!1,this._snippet=void 0,this.current=null,this.nvim.call("coc#snippet#disable",[],!0),this.config.highlight&&this.nvim.call("coc#highlight#clear_highlight",[this.bufnr,A1,0,-1],!0),this._onCancelEvent.fire(void 0),As.debug(`session ${this.bufnr} cancelled`))}get isActive(){return this._isActive}get bufnr(){return this.document.bufnr}async nextPlaceholder(){await this.forceSynchronize();let e=this.placeholder;if(!e)return;let t=this.snippet.getNextPlaceholder(e.index);t&&await this.selectPlaceholder(t)}async previousPlaceholder(){await this.forceSynchronize();let e=this.placeholder;if(!e)return;let t=this.snippet.getPrevPlaceholder(e.index);t&&await this.selectPlaceholder(t)}async selectCurrentPlaceholder(e=!0){if(await this.forceSynchronize(),!this.snippet)return;let t=this.snippet.getPlaceholderByMarker(this.current);t&&await this.selectPlaceholder(t,e)}async selectPlaceholder(e,t=!0){let{nvim:i,document:r}=this;if(!r||!e)return;let{start:o,end:s}=e.range,a=r.getline(o.line),l=rt(a,o.character)+1,u=this.current=e.marker;if(u instanceof Rt&&u.choice&&u.choice.options.length)(await Promise.resolve().then(()=>(Su(),N1))).default.setWords(u.choice.options.map(d=>d.value)),await i.call("coc#snippet#show_choices",[o.line+1,l,s,e.value]),t&&i.call("coc#util#do_autocmd",["CocJumpPlaceholder"],!0);else{let c=this.snippet.finalCount;await this.select(e,t),this.highlights(e),e.index==0&&(c==1?(As.info("Jump to final placeholder, cancelling snippet session"),this.deactivate()):i.call("coc#snippet#disable",[],!0))}}highlights(e,t=!0){if(!this.config.highlight)return;let i=this.document.buffer;this.nvim.pauseNotification(),i.clearNamespace(A1);let r=this.snippet.getRanges(e);r.length&&i.highlightRanges(A1,"CocSnippetVisual",r),this.nvim.resumeNotification(t,!0)}async select(e,t){let{range:i,value:r}=e,{nvim:o}=this;r.length>0?await o.call("coc#snippet#select",[i.start,i.end,r]):await o.call("coc#snippet#move",[i.start]),t&&o.call("coc#util#do_autocmd",["CocJumpPlaceholder"],!0),o.redrawVim()}async checkPosition(){if(!this.isActive)return;let e=await k.getCursorPosition();this.snippet&&Ot(e,this.snippet.range)!=0&&(As.info("Cursor insert out of range, cancelling snippet session"),this.deactivate())}findPlaceholder(e){let{placeholder:t}=this;return t&&ri(e,t.range)?t:this.snippet.getPlaceholderByRange(e)||null}get version(){return this.textDocument?this.textDocument.version:-1}async synchronize(e){await this.mutex.use(()=>(e&&(this.document.version!=e.version||e.version-this.version!==1)&&(e=void 0),this._synchronize(e?e.change:void 0)))}async _synchronize(e){let{document:t,textDocument:i}=this;if(!t.attached||!this._isActive)return;let r=Date.now(),o=t.textDocument;if(o.version==i.version||Fe(i.lines,o.lines))return;let{range:s,text:a}=this.snippet;e&&!ri(e.range,s)&&(e=void 0);let l=xz(s.end,i,o);if(!l){As.info("Content change after snippet, cancel snippet session"),this.deactivate();return}if(!wz(s.start,i,o)){let w=o.getText(M.create(V.create(0,0),l));if(w.endsWith(a)){let x=o.positionAt(w.length-a.length);this.snippet.resetStartPosition(x),this.textDocument=o,As.info("Content change before snippet, reset snippet position");return}As.info("Before and snippet body changed, cancel snippet session"),this.deactivate();return}let c=this.tokenSource=new p.CancellationTokenSource,d=await k.getCursorPosition();if(c.token.isCancellationRequested||t.hasChanged)return;let h,g,f=o.getText(M.create(s.start,l)),m=this.placeholder;if(e){for(let w of this.snippet.getSortedPlaceholders(m))if(ri(e.range,w.range)){h=w,g=this.snippet.getNewText(w,f);break}if(!h&&e.text.length==0&&!Kt(e.range)&&KZ(e.range)){let w=e.range.end.character-e.range.start.character,x=o.getText(M.create(s.start,e.range.start)).length;if(this.snippet.removeText(x,w)){this.textDocument=o;return}}}else for(let w of this.snippet.getSortedPlaceholders(m))if(!(ze(d,w.range.start)<0)&&(g=this.snippet.getNewText(w,f),g!=null&&vz(w.range.start,d,g))){h=w;break}if(!h&&f.endsWith(a)){let w=sn(s.start,f.slice(0,-a.length));this.snippet.resetStartPosition(w),this.textDocument=o,As.info("Content change before snippet, reset snippet position");return}if(!h){As.info("Unable to find changed placeholder, cancel snippet session"),this.deactivate();return}let y=await this.snippet.updatePlaceholder(h,d,g,c.token);if(!(y==null||c.token.isCancellationRequested)){if(t.dirty||!Fe(t.textDocument.lines,o.lines)){c.cancel(),c.dispose();return}if(c.dispose(),this.current=h.marker,y.text!==f){let w=j1({range:M.create(this.snippet.start,l),newText:y.text},f);await this.applyEdits([w]);let{delta:x}=y;(x.line!=0||x.character!=0)&&this.nvim.call("coc#cursor#move_to",[d.line+x.line,d.character+x.character],!0),this.highlights(h,!1),this.nvim.redrawVim()}else this.highlights(h);if(As.debug("update cost:",Date.now()-r,y.delta),this.textDocument=this.document.textDocument,this.config.nextOnDelete&&m&&m.value.length>0&&h.marker.toString()===""){let w=this.snippet.getNextPlaceholder(h.index);w&&await this.selectPlaceholder(w)}}}async forceSynchronize(){await this.document.patchChange(),(await this.mutex.acquire())(),this.document.version!==this.version&&await this.synchronize()}cancel(){this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource.dispose(),this.tokenSource=null)}get placeholder(){if(!(!this.snippet||!this.current))return this.snippet.getPlaceholderByMarker(this.current)}get snippet(){return this._snippet}static async resolveSnippet(e,t,i){let r=i&&M.is(i.range)?i.range.start:await k.getCursorPosition(),o=i&&typeof i.line=="string"?i.line:await e.line,s;i&&(s=Object.assign({range:M.create(r,r),line:o},i));let a=new Fm(e,b.workspaceFolderControl),l=new Im(t,r,e,a);return await l.init(s,!0),l.text}}});var Or,H1=D(()=>{"use strict";Or=class{constructor(e){this._tabstop=1;this.value=e||""}static isSnippetString(e){return e instanceof Or?!0:e?typeof e.value=="string":!1}static _escape(e){return e.replace(/\$|}|\\/g,"\\$&")}appendText(e){return this.value+=Or._escape(e),this}appendTabstop(e=this._tabstop++){return this.value+="$",this.value+=e,this}appendPlaceholder(e,t=this._tabstop++){if(typeof e=="function"){let i=new Or;i._tabstop=this._tabstop,e(i),this._tabstop=i._tabstop,e=i.value}else e=Or._escape(e);return this.value+="${",this.value+=t,this.value+=":",this.value+=e,this.value+="}",this}appendChoice(e,t=this._tabstop++){let i=e.map(r=>r.replace(/\$|}|\\|,/g,"\\$&")).join(",");return this.value+="${",this.value+=t,this.value+="|",this.value+=i,this.value+="|}",this}appendVariable(e,t){if(typeof t=="function"){let i=new Or;i._tabstop=this._tabstop,t(i),this._tabstop=i._tabstop,t=i.value}else typeof t=="string"&&(t=t.replace(/\$|}/g,"\\$&"));return this.value+="${",this.value+=e,t&&(this.value+=":",this.value+=t),this.value+="}",this}}});var B1,mi,Du=D(()=>{"use strict";ae();kt();Re();ee();Be();Pt();We();he();Pz();O1();H1();B1=class{constructor(){this.sessionMap=new Map;this.disposables=[]}init(){_.on("InsertCharPre",(e,t)=>{let i=this.getSession(t);i&&i.cancel()},null,this.disposables),_.on("InsertEnter",async e=>{let t=this.getSession(e);t&&await t.checkPosition()},null,this.disposables),b.onDidCloseTextDocument(e=>{let t=this.getSession(e.bufnr);t&&t.deactivate()},null,this.disposables),k.onDidChangeActiveTextEditor(e=>{if(!this._statusItem)return;this.getSession(e.document.bufnr)?this.statusItem.show():this.statusItem.hide()},null,this.disposables),ie.register({id:"editor.action.insertSnippet",execute:async(e,t)=>{let i=t===!0?{}:t;return await this.insertSnippet(e.newText,!0,e.range,vr.adjustIndentation,i||void 0)}},!0)}get nvim(){return b.nvim}get statusItem(){if(this._statusItem)return this._statusItem;let e=this._statusItem=k.createStatusBarItem(0),t=b.initialConfiguration.get("snippet");return e.text=ye(t.statusText,""),this._statusItem}getSnippetConfig(e){let t=b.getConfiguration("coc.preferences",e),i=b.getConfiguration("snippet",e),r=b.getConfiguration("suggest",e);return{highlight:t.get("snippetHighlight",i.get("highlight",!1)),nextOnDelete:t.get("nextPlaceholderOnDelete",i.get("nextPlaceholderOnDelete",!1)),preferComplete:r.get("preferCompleteThanJumpPlaceholder",!1)}}async insertSnippet(e,t=!0,i,r,o){let{bufnr:s}=b,a=b.getAttachedDocument(s);if(i&&!ri(i,M.create(0,0,a.lineCount+1,0)))throw new Error("Unable to insert snippet, invalid range.");let l;if(!i){let f=await k.getCursorPosition();i=M.create(f,f)}let u=a.getline(i.start.line),c=Or.isSnippetString(e)?e.value:e,d=await this.normalizeInsertText(a.uri,c,u,r);o!=null&&(l=Object.assign({range:Fi(i),line:u},o),!Kt(i)&&d.includes("`!p")&&(this.nvim.call("coc#cursor#move_to",[i.start.line,i.start.character],!0),await a.applyEdits([{range:i,newText:""}]),i.end=V.create(i.start.line,i.start.character)));let h=this.getSession(s);if(h?(await h.forceSynchronize(),h=this.getSession(s)):await a.patchChange(!0),!h){let f=this.getSnippetConfig(a.uri);h=new Mm(this.nvim,a,f),h.onCancel(()=>{this.sessionMap.delete(s),this.statusItem.hide()})}let g=await h.start(d,i,t,l);return g?(this.statusItem.show(),this.sessionMap.set(s,h)):(this.statusItem.hide(),this.sessionMap.delete(s)),g}async selectCurrentPlaceholder(e=!0){let{session:t}=this;if(t)return await t.selectCurrentPlaceholder(e)}async nextPlaceholder(){let{session:e}=this;return e?await e.nextPlaceholder():(this.nvim.call("coc#snippet#disable",[],!0),this.statusItem.hide()),""}async previousPlaceholder(){let{session:e}=this;return e?await e.previousPlaceholder():(this.nvim.call("coc#snippet#disable",[],!0),this.statusItem.hide()),""}cancel(){let e=this.getSession(b.bufnr);if(e)return e.deactivate();this.nvim.call("coc#snippet#disable",[],!0),this.statusItem&&this.statusItem.hide()}get session(){return this.getSession(b.bufnr)}getSession(e){return this.sessionMap.get(e)}jumpable(){let{session:e}=this;return e?e.placeholder!=null&&e.placeholder.index!=0:!1}async editsInsideSnippet(e){let t=this.getSession(b.bufnr);if(!t||!t.snippet)return!1;await t.forceSynchronize();let i=t.snippet.range;return!!e.some(r=>Wc(r.range,i))}async resolveSnippet(e,t){if(t){let i=this.getSession(b.bufnr);i!=null&&i.snippet.hasPython&&(t.noPython=!1)}return await Mm.resolveSnippet(this.nvim,e,t)}async normalizeInsertText(e,t,i,r){let o="";if(r===vr.asIs||!Dz(t))o=t;else{let s=i.match(/^\s*/)[0],a=k.activeTextEditor?k.activeTextEditor.options:await b.getFormatOptions(e);o=Sz(t,s,a)}return o}dispose(){this.cancel();for(let e of this.disposables)e.dispose()}},mi=new B1});var jm,Rz=D(()=>{"use strict";pe();jm=class{constructor(e=!1){this.addSpace=e;this._label="";this._len=0;this._highlights=[]}append(e,t,i){if(e.length==0)return;let r=this._len>0&&this.addSpace?" ":"",o=this._len+r.length;if(this._label=this._label+r+e,this._len=this._len+de(e)+r.length,t&&this._highlights.push({hlGroup:t,span:[o,o+de(e)]}),i)for(let s of i){let a=o+rt(e,s.offset),l=o+rt(e,s.offset+s.length);this._highlights.push({hlGroup:s.hlGroup,span:[a,l]})}}appendBuilder(e){let t=this._len>0&&this.addSpace?" ":"",i=this._len+t.length;this._label=this._label+t+e.label,this._len=this._len+de(e.label)+t.length,this._highlights.push(...e.highlights.map(r=>({hlGroup:r.hlGroup,span:r.span.map(o=>i+o)})))}get label(){return this._label}get highlights(){return this._highlights}}});function Hbe(n){return Array.isArray(n)&&n.every(e=>typeof e=="string")}function Bbe(n){return typeof n>"u"||Hbe(n)}var Hd,_z=D(()=>{"use strict";ae();Hd=class{constructor(e){if(this._prevLine=0,this._prevChar=0,this._dataIsSortedAndDeltaEncoded=!0,this._data=[],this._dataLen=0,this._tokenTypeStrToInt=new Map,this._tokenModifierStrToInt=new Map,this._hasLegend=!1,e){this._hasLegend=!0;for(let t=0,i=e.tokenTypes.length;t"u"))return typeof o>"u"&&(o=0),this._pushEncoded(e,t,i,r,o);if(M.is(e)&&typeof t=="string"&&Bbe(i))return this._push(e,t,i);throw new Error("Illegal argument")}_push(e,t,i){if(!this._hasLegend)throw new Error("Legend must be provided in constructor");if(e.start.line!==e.end.line)throw new Error("`range` cannot span multiple lines");if(!this._tokenTypeStrToInt.has(t))throw new Error("`tokenType` is not in the provided legend");let r=e.start.line,o=e.start.character,s=e.end.character-e.start.character,a=this._tokenTypeStrToInt.get(t),l=0;if(i)for(let u of i){if(!this._tokenModifierStrToInt.has(u))throw new Error("`tokenModifier` is not in the provided legend");let c=this._tokenModifierStrToInt.get(u);l|=1<>>0}this._pushEncoded(r,o,s,a,l)}_pushEncoded(e,t,i,r,o){if(this._dataIsSortedAndDeltaEncoded&&(e0&&(s-=this._prevLine,s===0&&(a-=this._prevChar)),this._data[this._dataLen++]=s,this._data[this._dataLen++]=a,this._data[this._dataLen++]=i,this._data[this._dataLen++]=r,this._data[this._dataLen++]=o,this._prevLine=e,this._prevChar=t}static _sortAndDeltaEncode(e){let t=[],i=e.length/5|0;for(let a=0;a{let u=e[5*a],c=e[5*l];if(u===c){let d=e[5*a+1],h=e[5*l+1];return d-h}return u-c});let r=new Array(e.length),o=0,s=0;for(let a=0;a{"use strict";Ap()});var q1=v((yGe,Iz)=>{"use strict";ae();Je();kt();td();Re();bu();Te();qo();fS();n1();$w();MP();Sa();qg();h1();Pm();Du();H1();Su();Oc();Ti();fs();$();We();he();I1();Rz();_z();Ez();ee();at();Nl();To();Ta();_w();Iz.exports={get nvim(){return b.nvim},Uri:A,LineBuilder:jm,NullLogger:Tm,SettingMonitor:gS,LanguageClient:Nd,CancellationTokenSource:p.CancellationTokenSource,ProgressType:p.ProgressType,RequestType:p.RequestType,RequestType0:p.RequestType0,NotificationType:p.NotificationType,NotificationType0:p.NotificationType0,ProtocolRequestType:p.ProtocolRequestType,ProtocolRequestType0:p.ProtocolRequestType0,ProtocolNotificationType:p.ProtocolNotificationType,ProtocolNotificationType0:p.ProtocolNotificationType0,Highligher:Ki,Mru:io,Emitter:p.Emitter,SnippetString:Or,BasicList:pi,Mutex:Oi,TreeItem:so,SemanticTokensBuilder:Hd,FloatFactory:Bl,RelativePattern:Ua,CancellationError:Ct,WorkspaceChange:JT,ResponseError:p.ResponseError,Trace:p.Trace,DocumentUri:Bh,WorkspaceFolder:pg,InlineValueText:ug,InlineValueVariableLookup:cg,InlineValueEvaluatableExpression:dg,InlineValueContext:hg,InlayHintKind:$r,InlayHintLabelPart:pc,InlayHint:gg,DiagnosticRelatedInformation:gc,SemanticTokens:ea,SemanticTokenTypes:Tt,SemanticTokenModifiers:rn,AnnotatedTextEdit:In,ChangeAnnotation:ns,SymbolTag:Ui,Command:Ln,Color:hc,CodeDescription:Uh,ColorInformation:Wh,ColorPresentation:Yh,TextDocumentEdit:ei,TextDocumentIdentifier:$h,VersionedTextDocumentIdentifier:Xh,TextDocumentItem:Gh,DocumentHighlight:tg,SelectionRange:lg,DocumentLink:Tl,CodeLens:sg,FormattingOptions:ag,CodeAction:og,CodeActionContext:rg,DocumentSymbol:Dl,WorkspaceSymbol:ng,CreateFile:Gn,RenameFile:zn,WorkspaceEdit:Qs,InsertReplaceEdit:os,InsertTextMode:vr,CompletionItem:Kh,CompletionList:Qh,Hover:as,ParameterInformation:Vh,SignatureInformation:eg,SymbolInformation:ig,MarkupContent:Mn,ErrorCodes:p.ErrorCodes,CompletionItemTag:rs,integer:qh,uinteger:xl,FoldingRangeKind:Zh,FoldingRange:Jh,ChangeAnnotationIdentifier:Pi,DeleteFile:Fn,OptionalVersionedTextDocumentIdentifier:Cl,CompletionItemLabelDetails:zh,MarkedString:ss,ProviderName:Nt,DocumentDiagnosticReportKind:p.DocumentDiagnosticReportKind,UniquenessLevel:p.UniquenessLevel,MonikerKind:p.MonikerKind,PatternType:Rw,SourceType:Gc,ConfigurationTarget:Wg,ServiceStat:F1,FileType:mv,State:cS,ClientState:T1,CloseAction:iS,ErrorAction:nS,TransportKind:pS,MessageTransports:Ad,RevealOutputChannelOn:uS,MarkupKind:yr,DiagnosticTag:Ji,DocumentHighlightKind:Vs,SymbolKind:ke,SignatureHelpTriggerKind:p.SignatureHelpTriggerKind,FileChangeType:p.FileChangeType,CodeActionKind:Gt,Diagnostic:Ur,DiagnosticSeverity:nt,CompletionItemKind:ne,InsertTextFormat:Sl,Location:Ze,LocationLink:br,CancellationToken:p.CancellationToken,Position:V,Range:M,TextEdit:Ye,Disposable:p.Disposable,Event:p.Event,workspace:b,window:k,CodeActionTriggerKind:ls,CompletionTriggerKind:p.CompletionTriggerKind,snippetManager:mi,events:_,services:Sn,commands:ie,sources:_i,languages:I,diagnosticManager:hi,extensions:Wt,listManager:Wi,TreeItemCollapsibleState:Xl,terminate:Fc,fetch:If,download:im,ansiparse:Qg,disposeAll:Y,concurrent:fh,watchFile:Dc,wait:Zi,runCommand:Ro,isRunning:q4,executable:Al}});function Zbe(n){return()=>{throw new Error(`process.${n}() is not allowed in extension sandbox`)}}function Jbe(n){let e=t=>t==="coc.nvim"?$e(n):this.require(t);return e.resolve=t=>$a._resolveFilename(t,this),e.main=Wbe,e.extensions=$a._extensions,e.cache=$a._cache,e}function Ube(n,e){return function(t,i){let r=Jbe.call(this,e),o=R.dirname(i),s=t.startsWith("#!")?t.replace(/^#!.*/,""):t,a=$a.wrap(s),l=O0.runInContext(a,n,{filename:i}),u=[this.exports,r,this,i,o];return l.apply(this.exports,u)}}function $be(n){if(En(n.prototype,"_compile"))return n.prototype;if(En(n.prototype.__proto__,"_compile"))return n.prototype.__proto__;throw new Error("_compile not found")}function Xbe(n,e,t,i=!1){let r=new $a(n);r.paths=$a._nodeModulePaths(n);let o=O0.createContext({module:r,Buffer,URL:globalThis.URL,console:{debug:(...a)=>{e.debug.apply(e,a)},log:(...a)=>{e.info.apply(e,a)},error:(...a)=>{e.error.apply(e,a)},info:(...a)=>{e.info.apply(e,a)},warn:(...a)=>{e.warn.apply(e,a)}}},{name:t});B4(o,global),o.Reflect=Reflect;let s=i?void 0:q1();o.require=function(l){let u=W1._compile;W1._compile=Ube(o,s);let c=o.module.require(l);return W1._compile=u,c},o.process=new process.constructor;for(let a of Object.keys(process))o.process[a]=process[a];return Ybe.forEach(a=>{o.process[a]=Zbe(a)}),o.process.chdir=()=>{},o.process.umask=a=>{if(typeof a<"u")throw new Error("Cannot use process.umask() to change mask (read-only)");return process.umask()},o}function Gbe(n,e){return n?qbe:J(`extension:${e}`)}function Lz(n,e,t){if(t||!F.existsSync(e))return{activate:()=>{},deactivate:null};let i=Gbe(!global.__isMain&&!0,n),r=Xbe(e,i,n);delete $a._cache[require.resolve(e)];let o=r.require(e),s=o&&o.activate||o;return typeof s!="function"?{activate:()=>{}}:typeof o=="function"?{activate:s}:Object.assign({},o)}var qbe,$a,Wbe,Ybe,W1,Fz=D(()=>{"use strict";Ce();ce();Tr();Be();qbe={category:"",log:console.log.bind(console),debug:console.debug.bind(console),error:console.error.bind(console),warn:console.warn.bind(console),info:console.info.bind(console),trace:console.log.bind(console),fatal:console.error.bind(console),mark:console.log.bind(console)},$a=require("module"),Wbe=require.main,Ybe=["reallyExit","abort","umask","setuid","setgid","setgroups","_fatalException","exit","kill"];W1=$be($a)});function mS(n,e){let t,i,r;return{start(o){r=o,t=Date.now(),clearTimeout(i),e&&(i=setTimeout(()=>{Mz.error(`${n} timeout after ${e}ms`)},e),i.unref())},stop(){clearTimeout(i),Mz.trace(`${n}${r?` ${r}`:""} cost:`,Date.now()-t)}}}var Mz,Y1=D(()=>{"use strict";Ce();Mz=J("timing")});function zbe(n){return n==="daily"?jz:jz*7}function Oz(n,e){let t=[];return Bd(n,e,t)!=null&&t.length==0}function Az(n){return n?n.endsWith(".js")?n:n+".js":"index.js"}async function Nz(n,e){let t=R.join(n,"package.json"),i=await Ng(t,"utf8"),r=JSON.parse(i),{engines:o}=r,s=Az(r.main);if(!o||typeof o.coc!="string"&&typeof o.vscode!="string")throw new Error("Invalid engines field");if(Object.keys(o).includes("coc")&&!ur.satisfies(e,o.coc.replace(/^\^/,">=")))throw new Error(`coc.nvim version not match, required ${o.coc}`);if(!o.vscode&&!F.existsSync(R.join(n,s)))throw new Error(`main file ${s} not found, you may need to build the project.`);return r}function Bd(n,e,t){let i=R.join(n,"package.json");if(!F.existsSync(i)){t.push(`package.json not found in ${n}`);return}let r=Ns(i),{name:o,engines:s}=r,a=Az(r.main);if(o||t.push("can't find name in package.json"),(!s||!St(s))&&t.push(`invalid engines in ${i}`),s&&!s.vscode&&!F.existsSync(R.join(n,a))&&t.push(`main file ${a} not found, you may need to build the project.`),s){let l=Object.keys(s);if(!l.includes("coc")&&!l.includes("vscode")&&t.push("Engines in package.json doesn't have coc or vscode"),l.includes("coc")){let u=s.coc.replace(/^\^/,">=");ur.satisfies(e,u)||t.push(`Please update coc.nvim, ${r.name} requires coc.nvim ${s.coc}`)}}return r}function Kbe(n){return/^https?:/.test(n)||!n.includes("@")?n:n.replace(/@[\d.]+$/,"")}function Hz(n){try{F.existsSync(n)||F.mkdirSync(n,{recursive:!0}),F.statSync(n).isDirectory()||(Z1.info(`Trying to delete ${n}`),F.unlinkSync(n),F.mkdirSync(n,{recursive:!0}));let t=R.join(n,"package.json");F.existsSync(t)||F.writeFileSync(t,'{"dependencies":{}}',"utf8")}catch(e){return console.error(`Unexpected error when check data home ${n}: ${e}`),!1}return!0}async function Bz(n){return F.existsSync(n)?(await(0,st.promisify)(F.readdir)(n)).filter(t=>t.endsWith(".js")):[]}function Ns(n){try{let e=F.readFileSync(n,"utf8"),t=JSON.parse(e);return $e(t)}catch(e){return Z1.error(`Error on parse json file ${n}`,e),{}}}var Z1,jz,bS,J1=D(()=>{"use strict";Ce();Se();at();Xe();ce();Be();Z1=J("extension-stat"),jz=24*60*60*1e3,bS=class{constructor(e){this.folder=e;this.disabled=new Set;this.locked=new Set;this.extensions=new Set;this.localExtensions=new Map;try{this.migrate()}catch(t){Z1.error(`Error on update package.json at ${e}`,t)}}migrate(){let e=Ns(this.jsonFile),t=R.join(this.folder,"db.json"),i=!1;if(F.existsSync(t)){let o=Ns(t),s=o.extension??{};for(let[a,l]of Object.entries(s))l.disabled&&this.disabled.add(a),l.locked&&this.locked.add(a);e.disabled=Array.from(this.disabled),e.locked=Array.from(this.locked),e.lastUpdate-o.lastUpdate,F.unlinkSync(t),i=!0}else this.disabled=new Set(e.disabled??[]),this.locked=new Set(e.locked??[]);i&&oa(this.jsonFile,e);let r=Object.keys(e.dependencies??{});this.extensions=new Set(r)}*activated(){let{disabled:e}=this;for(let t of Object.keys(this.dependencies))e.has(t)||(yield t)}addLocalExtension(e,t){this.localExtensions.set(e,t)}getFolder(e){return this.extensions.has(e)?R.join(this.folder,"node_modules",e):this.localExtensions.get(e)}getExtensionsStat(){let e={};for(let t of this.extensions)this.disabled.has(t)?e[t]=1:this.locked.has(t)?e[t]=2:e[t]=0;return e}hasExtension(e){return this.extensions.has(e)}addExtension(e,t){let i=Ns(this.jsonFile);i.dependencies=i.dependencies??{},i.dependencies[e]=t,this.extensions.add(e),oa(this.jsonFile,i)}removeExtension(e){let t=Ns(this.jsonFile);t.disabled&&(t.disabled=t.disabled.filter(i=>i!==e)),t.locked&&(t.locked=t.locked.filter(i=>i!==e)),t.dependencies=t.dependencies??{},delete t.dependencies[e],this.extensions.delete(e),oa(this.jsonFile,t)}isDisabled(e){return this.disabled.has(e)}get lockedExtensions(){return Array.from(this.locked)}get disabledExtensions(){return Array.from(this.disabled)}get dependencies(){return Ns(this.jsonFile).dependencies??{}}setDisable(e,t){t?this.disabled.add(e):this.disabled.delete(e),this.update("disabled",Array.from(this.disabled))}setLocked(e,t){t?this.locked.add(e):this.locked.delete(e),this.update("locked",Array.from(this.disabled))}setLastUpdate(){this.update("lastUpdate",Date.now())}shouldUpdate(e){if(e==="never")return!1;let t=zbe(e),i=Ns(this.jsonFile);return i.lastUpdate==null||Date.now()-i.lastUpdate>t}get globalIds(){let e=Ns(this.jsonFile);return Object.keys(e.dependencies??{})}filterGlobalExtensions(e){let t=this.disabledExtensions,i=this.dependencies,r=new Map;le(e).forEach(a=>{if(!a||typeof a!="string")return;let l=Kbe(a);r.set(l,a)});let o=[],s=[];for(let[a,l]of Object.entries(i))F.existsSync(R.join(this.folder,"node_modules",a,"package.json"))&&(s.push(a),typeof l=="string"&&/^https?:/.test(l)&&o.push(l));for(let a of r.keys()){if(t.includes(a)||this.extensions.has(a)){r.delete(a);continue}(/^https?:/.test(a)&&o.some(l=>l.startsWith(a))||s.includes(a))&&r.delete(a)}return Array.from(r.values())}update(e,t){let i=Ns(this.jsonFile);i[e]=t,oa(this.jsonFile,i)}get jsonFile(){return R.join(this.folder,"package.json")}}});function Wz(n){let e=[];for(let t of le(n)){let[i]=t.split(":",2);i&&!e.includes(i)&&e.push(i)}return e}function Qbe(n){let e=[];for(let t of le(n)){let[i,r]=t.split(":",2);i==="onCommand"&&r&&e.push(r)}return e}function Vbe(n,e){for(let t of e){let i=t.split(":");if(i[0]=="onLanguage"&&(n.languageId==i[1]||n.filetype==i[1]))return!0}return!1}function eye(n,e){for(let t of e){let i=t.split(":");if(i[0]=="onCommand"&&n==i[1])return!0}return!1}function tye(n,e){let t=A.parse(n).scheme;for(let i of e){let r=i.split(":");if(r[0]=="onFileSystem"&&t==r[1])return!0}return!1}function Yz(n){return le(n.activationEvents).filter(e=>typeof e=="string"&&e.length>0)}function iye(n){let e=[];for(let t of n){let i=t.split(":");i[0]=="workspaceContains"&&i[1]&&e.push(i[1])}return e}var yS,U1,$1,qz,vS,Zz=D(()=>{"use strict";Je();dw();To();pR();Re();Ce();WG();ee();Se();Jt();hs();Fz();at();Xe();Tr();ce();Be();$();ko();Y1();We();he();J1();yS=J("extensions-manager"),U1=di.as(ds.ExtensionContribution),$1=new nm(R.resolve(Kn,"memos.json"));$1.merge(R.resolve(Kn,"../memos.json"));qz=di.as(Zl.Configuration),vS=class{constructor(e,t){this.states=e;this.folder=t;this.activated=!1;this.disposables=[];this.configurationNodes=[];this.extensions=new Map;this._onDidLoadExtension=new p.Emitter;this._onDidActiveExtension=new p.Emitter;this._onDidUnloadExtension=new p.Emitter;this.singleExtensionsRoot=R.join(lk,"coc-extensions");this.onDidLoadExtension=this._onDidLoadExtension.event;this.onDidActiveExtension=this._onDidActiveExtension.event;this.onDidUnloadExtension=this._onDidUnloadExtension.event;this.modulesFolder=R.join(this.folder,"node_modules")}activateExtensions(){if(this.activated=!0,process.env.COC_NO_PLUGINS=="1")return;qz.registerConfigurations(this.configurationNodes),this.attachEvents();let e=[];for(let t of this.extensions.keys()){let{extension:i}=this.extensions.get(t),r=i.packageJSON.activationEvents;!r||r.includes("*")?e.push(void i.activate()):this.autoActiavte(t,i)}return Promise.allSettled(e)}async loadFileExtensions(){let e=this.singleExtensionsRoot,t=await Bz(e);await Promise.allSettled(t.map(i=>this.loadExtensionFile(R.join(e,i))))}attachEvents(){b.onDidRuntimePathChange(async e=>{let t=e.filter(r=>r&&Oz(r,b.version)),i=k.createOutputChannel("extensions");await Promise.allSettled(t.map(r=>(i.appendLine(`Loading extension from runtimepath: ${r}`),this.loadExtension(r))))},null,this.disposables),b.onDidOpenTextDocument(e=>{let t=b.getDocument(e.bufnr);this.tryActivateExtensions("onLanguage",i=>Vbe(t,i)),this.tryActivateExtensions("onFileSystem",i=>tye(t.uri,i))},null,this.disposables),_.on("Command",async e=>{let t=!1;this.tryActivateExtensions("onCommand",i=>{let r=eye(e,i);return r&&(t=!0),r}),t&&await Zi(50)},null,this.disposables),b.onDidChangeWorkspaceFolders(e=>{e.added.length>0&&this.tryActivateExtensions("workspaceContains",t=>{let i=iye(t);return b.checkPatterns(i,e.added)})},null,this.disposables)}async cleanExtensions(){let{globalIds:e}=this.states;return await yk(this.modulesFolder),e.filter(t=>!this.states.isDisabled(t))}tryActivateExtensions(e,t){for(let i of this.extensions.values()){if(i.extension.isActive||!i.events.includes(e))continue;let{extension:o}=i,s=Yz(o.packageJSON);Promise.resolve(t(s)).then(a=>{a&&Promise.resolve(o.activate())})}}async checkAutoActivate(e){let t=Yz(e);if(t.length===0||t.includes("*"))return!0;let i=[];for(let r of t){let o=r.split(":"),s=o[0];if(s==="onLanguage"){if(b.languageIds.has(o[1])||b.filetypes.has(o[1]))return!0}else if(s==="workspaceContains"&&o[1])i.push(o[1]);else if(s==="onFileSystem"){for(let a of b.documents)if(A.parse(a.uri).scheme==o[1])return!0}}return!!(i.length>0&&await b.checkPatterns(i))}has(e){return this.extensions.has(e)}getExtension(e){return this.extensions.get(e)}get loadedExtensions(){return Array.from(this.extensions.keys())}get all(){return Array.from(this.extensions.values()).map(e=>e.extension)}async activate(e){let t=this.extensions.get(e);if(!t)throw new Error(`Extension ${e} not registered!`);let{extension:i}=t;return i.isActive?!0:(await Promise.resolve(i.activate()),i.isActive===!0)}async deactivate(e){let t=this.extensions.get(e);!t||!t.extension.isActive||await Promise.resolve(t.deactivate())}async loadExtension(e,t=!1){if(Array.isArray(e))return(await Promise.allSettled(e.map(l=>this.loadExtension(l,t)))).forEach(l=>{if(l.status==="rejected")throw new Error(`Error on loadExtension ${l.reason}`)}),!0;let i=[],r=Bd(e,b.version,i);if(i.length>0)throw new Error(i[0]);let{name:o}=r;if(this.states.isDisabled(o))return!1;await this.unloadExtension(o);let s=!this.states.hasExtension(o);return s&&this.states.addLocalExtension(o,e),await this.registerExtension(e,Object.freeze(r),s?1:0,t),!0}async unloadExtension(e){this.extensions.get(e)&&(await this.deactivate(e),this.extensions.delete(e),this._onDidUnloadExtension.fire(e))}async reloadExtension(e){let t=this.extensions.get(e);if(!t||t.type==3)throw new Error(`Extension ${e} not registered`);t.type==2?await this.loadExtensionFile(t.filepath):await this.loadExtension(t.directory)}async call(e,t,i){let r=this.extensions.get(e);if(!r)throw new Error(`extension ${e} not registered`);let{extension:o}=r;o.isActive||await this.activate(e);let{exports:s}=o;if(!s||typeof s[t]!="function")throw new Error(`method ${t} not found on extension ${e}`);return await Promise.resolve(s[t].apply(null,i))}registContribution(e,t,i,r){let{contributes:o,activationEvents:s}=t,{configuration:a,rootPatterns:l,commands:u}=o??{},c,d=WY(a??{});if(!Hy(d)){let h=bv(d,2);if(St(a.definitions)){let f=e.replace(/[^\w]/g,""),m=(y,w)=>{if(w=="$ref"){let x=y[w];Ue(x)&&x.startsWith("#/definitions/")&&(y[w]=x.slice(0,14)+f+"."+x.slice(14))}};Fh(h,m),c={},Object.entries(Fi(a.definitions)).forEach(([y,w])=>{St(w)&&(c[f+"."+y]=w,Fh(w,m))})}let g={properties:h,extensionInfo:{id:e,displayName:t.displayName}};if(this.configurationNodes.push(g),this.activated){let f=[],m=this.configurationNodes.findIndex(y=>y.extensionInfo.id===e);m!==-1&&(f.push(this.configurationNodes[m]),this.configurationNodes.splice(m,1)),b.configurations.updateConfigurations([g],f)}}U1.registerExtension(e,{name:e,directory:i,filepath:r,commands:u,definitions:c,rootPatterns:l,onCommands:Qbe(s)})}getExtensionState(e){if(this.states.isDisabled(e))return"disabled";let i=this.getExtension(e);if(!i)return"unknown";let{extension:r}=i;return r.isActive?"activated":"loaded"}async autoActiavte(e,t){try{await this.checkAutoActivate(t.packageJSON)&&await Promise.resolve(t.activate())}catch(i){yS.error(`Error on activate ${e}`,i)}}async loadExtensionFile(e,t=!1){let i=await jn(e);if(!i||!i.isFile())return;let r=R.basename(e),o=R.basename(e,".js"),s="single-"+o,a=R.dirname(e),l={name:s,main:r,engines:{coc:">=0.0.82"}},u=R.join(a,o+".json"),c=to(u);for(let d of["activationEvents","contributes"])l[d]=c[d];return await this.unloadExtension(s),await this.registerExtension(a,l,2,t),s}registerExtensions(e){for(let t of e)try{let i=t.isLocal?1:0;this.registerExtension(t.root,t.packageJSON,i)}catch(i){yS.error(`Error on regist extension from ${t.root}: `,i)}}async registerExtension(e,t,i,r=!1){let o=t.name;if(this.states.isDisabled(o))return;let s=!1,a,l=R.join(e,t.main||"index.js"),u=i===2?l:e,c,d,h=[],g=mS(`activate ${o}`,5e3),f={activate:()=>a||(a=new Promise(async(m,y)=>{g.start();try{let w=typeof t.engines.coc>"u";d=Lz(o,l,w);let x={subscriptions:h,extensionPath:u,globalState:$1.createMemento(`${o}|global`),workspaceState:$1.createMemento(`${o}|${b.rootPath}`),asAbsolutePath:P=>R.join(e,P),storagePath:R.join(this.folder,`${o}-data`),logger:J(`extension:${o}`)},C=await Promise.resolve(d.activate(x));s=!0,c=C,this._onDidActiveExtension.fire(f),g.stop(),m(C)}catch(w){yS.error(`Error on active extension ${o}:`,w),y(w)}}),a),id:o,packageJSON:t,extensionPath:u,get isActive(){return s},get module(){return d},get exports(){if(!s)throw new Error(`Invalid access to exports, extension "${o}" not activated`);return c}};Object.freeze(f),this.extensions.set(o,{id:o,type:i,isLocal:i==1,extension:f,directory:e,filepath:l,events:Wz(t.activationEvents),deactivate:async()=>{if(!!s&&(s=!1,a=void 0,c=void 0,Y(h),d&&typeof d.deactivate=="function"))try{await Promise.resolve(d.deactivate()),d=void 0}catch(m){yS.error(`Error on ${o} deactivate: `,m)}}}),this.registContribution(o,t,e,l),this._onDidLoadExtension.fire(f),this.activated&&!r&&await this.autoActiavte(o,f)}unregistContribution(e){let t=this.configurationNodes.findIndex(i=>i.extensionInfo.id===e);if(U1.unregistExtension(e),t!==-1){let i=this.configurationNodes[t];this.configurationNodes.splice(t,1),qz.deregisterConfigurations([i])}}async registerInternalExtension(e,t){let{id:i,packageJSON:r}=e;this.extensions.set(i,{id:i,directory:__dirname,type:3,events:Wz(r.activationEvents),extension:e,deactivate:t,isLocal:!0}),this.registContribution(i,r,__dirname),this._onDidLoadExtension.fire(e),await this.autoActiavte(i,e)}async uninstallExtensions(e){let[t,i]=lv(e,r=>this.states.hasExtension(r));for(let r of t)await this.unloadExtension(r),this.states.removeExtension(r),U1.unregistExtension(r),await yk(R.join(this.modulesFolder,r));i.length>0&&k.showWarningMessage(`Global extensions ${i.join(", ")} not found`),t.length>0&&k.showInformationMessage(`Removed extensions: ${t.join(" ")}`)}async toggleExtension(e){let t=this.getExtensionState(e);if(t=="activated"&&await this.deactivate(e),t!="disabled")this.states.setDisable(e,!0),this.unregistContribution(e),await this.unloadExtension(e);else if(this.states.setDisable(e,!1),e.startsWith("single-")){let i=R.join(this.singleExtensionsRoot,`${e.replace(/^single-/,"")}.js`);await this.loadExtensionFile(i)}else{let i=this.states.getFolder(e);i?await this.loadExtension(i):k.showWarningMessage(`Extension ${e} not found`)}}async watchExtension(e){let t=this.getExtension(e);if(!t)throw new Error(`extension ${e} not found`);if(e.startsWith("single-"))k.showInformationMessage(`watching ${t.filepath}`),this.disposables.push(Dc(t.filepath,async()=>{await this.loadExtensionFile(t.filepath),k.showInformationMessage(`reloaded ${e}`)},!1));else{let i=b.getWatchmanPath();if(!i)throw new Error("watchman not found");let r=await vs.createClient(i,t.directory);this.disposables.push(r),k.showInformationMessage(`watching ${t.directory}`),await r.subscribe("**/*.js",async()=>{await this.reloadExtension(e),k.showInformationMessage(`reloaded ${e}`)})}}async load(e,t){let i;if(Tc(e)?(i=to(R.join(e,"package.json")).name,await this.loadExtension(e,!0)):i=await this.loadExtensionFile(e,!0),!i)throw new Error(`Unable to load extension at ${e}`);if(this.states.isDisabled(i))throw new Error(`extension ${i} is disabled`);let o=this.getExtension(i);return t&&await o.extension.activate(),{get isActive(){return o.extension.isActive},get name(){return i},get api(){return o.extension.exports},get exports(){let s=o.extension.module??{};return ni(s,["activate"])},unload:()=>this.unloadExtension(i)}}dispose(){Y(this.disposables)}}});var nye,wS,rye,xS,Jz=D(()=>{"use strict";Re();bR();ee();ce();$();pe();We();he();nye=ge(100,1),wS=class{constructor(e,t){this.isUpdate=e;this.channel=t}start(e){this.channel.appendLine(`${this.isUpdate?"Updating":"Installing"} ${e.join(", ")}`)}addMessage(e,t,i){i||this.channel.appendLine(`${e} - ${t}`)}startProgress(e){this.channel.appendLine(`Start ${this.isUpdate?"update":"install"} ${e}`)}finishProgress(e,t){t?this.channel.appendLine(`${e} ${this.isUpdate?"update":"install"} succeed!`):this.channel.appendLine(`${e} ${this.isUpdate?"update":"install"} failed!`)}},rye=ge(500,10),xS=class{constructor(e){this.isUpdate=e;this.statMap=new Map;this.updated=new Set;this.messagesMap=new Map;this.disposables=[];this.names=[];let t=k.createFloatFactory({modes:["n"]});this.disposables.push(t);let i=mt(async(r,o)=>{if(r==this.bufnr){let s=this.getMessages(o[0]-1),a=s.length>0?[{content:s.join(` +`),filetype:"txt"}]:[];await t.show(a)}},rye);this.disposables.push(p.Disposable.create(()=>{i.clear()})),_.on("CursorMoved",i,this.disposables),_.on("BufUnload",r=>{r===this.bufnr&&this.dispose()},null,this.disposables)}async start(e){this.statMap.clear(),this.names=e;for(let t of e)this.statMap.set(t,0);await this.show()}addMessage(e,t){let i=this.messagesMap.get(e)||[];this.messagesMap.set(e,i.concat(t.trim().split(/\r?\n/))),(t.startsWith("Updated to")||t.startsWith("Installed extension"))&&this.updated.add(e)}startProgress(e){this.statMap.set(e,2)}finishProgress(e,t){this.statMap.set(e,t?3:1)}get remains(){let e=0;for(let t of this.names){let i=this.statMap.get(t);[3,1].includes(i)||(e=e+1)}return e}getLinesAndHighlights(e){let t=[],i=[];for(let r of this.names){let o=this.statMap.get(r),s="*",a,l=e+t.length;switch(o){case 2:{let h=new Date,g=Math.floor(h.getMilliseconds()/100);s=mR[g],a=void 0;break}case 1:s="\u2717",a="ErrorMsg";break;case 3:s="\u2713",a=this.updated.has(r)?"MoreMsg":"Comment";break}let u=this.messagesMap.get(r)||[],c=`- ${s} `,d=de(c);a&&i.push({hlGroup:a,lnum:l,colStart:d,colEnd:d+de(r)}),t.push(`${c}${r} ${u.length?u[u.length-1]:""}`)}return{lines:t,highlights:i}}getMessages(e){let t=this.names[e-2];return this.messagesMap.get(t)??[]}get stopped(){return this.interval==null}draw(){let{remains:e,bufnr:t}=this,{nvim:i}=b;if(!t)return;let r=i.createBuffer(t),o=e==0?`${this.isUpdate?"Update":"Install"} finished`:`Installing, ${e} remaining...`,{lines:s,highlights:a}=this.getLinesAndHighlights(2);i.pauseNotification(),r.setLines([o,"",...s],{start:0,end:-1,strictIndexing:!1},!0),r.updateHighlights("coc-extensions",a,{priority:99}),e==0&&this.interval&&(clearInterval(this.interval),this.interval=null),i.resumeNotification(!0,!0)}highlight(){let{nvim:e}=b;e.call("matchadd",["CocListFgCyan","^\\-\\s\\zs\\*"],!0),e.call("matchadd",["CocListFgGreen","^\\-\\s\\zs\u2713"],!0),e.call("matchadd",["CocListFgRed","^\\-\\s\\zs\u2717"],!0)}async show(){let e=_.requesting===!0,{nvim:t}=b;t.pauseNotification(),t.command(e?"enew":"vs +enew",!0),t.call("bufnr",["%"],!0),t.command("setl buftype=nofile bufhidden=wipe noswapfile nobuflisted wrap undolevels=-1",!0),e||t.command("nnoremap q :q",!0),this.highlight();let i=await t.resumeNotification();this.bufnr=i[0][1],this.interval=setInterval(()=>{this.draw()},nye)}dispose(){this.bufnr=void 0,this.messagesMap.clear(),this.statMap.clear(),Y(this.disposables),clearInterval(this.interval),this.interval=null}}});function oye(n){return Ay(n)?n.replace(/\.git(#master|#main)?$/,""):""}var Om,CS,X1,Wt,bu=D(()=>{"use strict";kt();To();Ce();ee();Se();Jt();Xe();ce();Nl();We();he();qG();Zz();J1();Jz();Om=J("extensions-index"),CS=R.join(Kn,"extensions"),X1=class{constructor(){this.modulesFolder=R.join(CS,"node_modules");Hz(CS),this.states=new bS(CS),this.manager=new vS(this.states,CS),ie.register({id:"extensions.forceUpdateAll",execute:async()=>{let e=await this.manager.cleanExtensions();Om.info(`Force update extensions: ${e}`),await this.installExtensions(e)}},!1,"remove all global extensions and install them"),this.globalPromise=this.globalExtensions(),ie.register({id:"extensions.toggleAutoUpdate",execute:async()=>{let e=b.getConfiguration("coc.preferences",null),t=e.get("extensionUpdateCheck","daily"),i=1;t=="never"?(await e.update("extensionUpdateCheck","daily",i),k.showInformationMessage("Extension auto update enabled.")):(await e.update("extensionUpdateCheck","never",i),k.showInformationMessage("Extension auto update disabled."))}},!1,"toggle auto update of extensions.")}async init(e){if(process.env.COC_NO_PLUGINS=="1")return;let t=await this.globalPromise;this.manager.registerExtensions(t);let i=this.runtimeExtensionStats(e);this.manager.registerExtensions(i),this.manager.loadFileExtensions()}async activateExtensions(){if(await this.manager.activateExtensions(),process.env.COC_NO_PLUGINS=="1")return;let e=this.states.filterGlobalExtensions(b.env.globalExtensions);this.installExtensions(e);let t=b.initialConfiguration.get("coc.preferences"),i=t.extensionUpdateCheck,r=t.silentAutoupdate;this.states.shouldUpdate(i)&&(this.outputChannel.appendLine("Start auto update..."),this.updateExtensions(r).catch(o=>{this.outputChannel.appendLine(`Error on updateExtensions ${o}`)}))}get onDidLoadExtension(){return this.manager.onDidLoadExtension}get onDidActiveExtension(){return this.manager.onDidActiveExtension}get onDidUnloadExtension(){return this.manager.onDidUnloadExtension}get outputChannel(){return k.createOutputChannel("extensions")}get all(){return this.manager.all}has(e){return this.manager.has(e)}getExtension(e){return this.manager.getExtension(e)}getExtensionById(e){let t=this.manager.getExtension(e);return t?t.extension:void 0}get schemes(){return{}}addSchemeProperty(e,t){}getExtensionState(e){return this.manager.getExtensionState(e)}isActivated(e){let t=this.manager.getExtension(e);return t!=null&&t.extension.isActive}async call(e,t,i){return await this.manager.call(e,t,i)}get npm(){let e=b.initialConfiguration.get("npm.binPath");e=b.expand(e);for(let t of[e,"yarnpkg","yarn","npm"])if(Al(t))return vo.sync(t);return k.showErrorMessage("Can't find npm or yarn in your $PATH"),null}createInstallerUI(e,t){return t?new wS(e,this.outputChannel):new xS(e)}creteInstaller(e,t){return new iC(this.modulesFolder,e,t)}async installExtensions(e){if(te(e)||!this.npm)return;let{npm:t}=this;e=wi(e);let i=this.createInstallerUI(!1,!1);await Promise.resolve(i.start(e)),await fh(e,async o=>{try{i.startProgress(o);let s=this.creteInstaller(t,o);s.on("message",(u,c)=>{i.addMessage(o,u,c)});let a=await s.install();i.finishProgress(o,!0),this.states.addExtension(a.name,a.url?a.url:`>=${a.version}`),o.match(/@[\d.]+$/)!=null&&this.states.setLocked(a.name,!0),await this.manager.loadExtension(a.folder)}catch(s){i.addMessage(o,s.message),i.finishProgress(o,!1),k.showErrorMessage(`Error on install ${o}: ${s}`),Om.error(`Error on install ${o}`,s)}})}async updateExtensions(e=!1){let{npm:t}=this;if(!t)return;let i=this.globalExtensionStats();i=i.filter(s=>s.isLocked||s.state==="disabled"?(this.outputChannel.appendLine(`Skipped update for ${s.isLocked?"locked":"disabled"} extension "${s.id}"`),!1):!0),this.states.setLastUpdate(),this.cleanModulesFolder();let r=this.createInstallerUI(!0,e);await Promise.resolve(r.start(i.map(s=>s.id))),await fh(i,async s=>{let{id:a}=s;try{r.startProgress(a);let l=s.exotic?s.uri:null,u=this.creteInstaller(t,a);u.on("message",(d,h)=>{r.addMessage(a,d,h)});let c=await u.update(l);r.finishProgress(a,!0),c&&await this.manager.loadExtension(c)}catch(l){r.addMessage(a,l.message),r.finishProgress(a,!1),k.showErrorMessage(`Error on update ${a}: ${l}`),Om.error(`Error on update ${a}`,l)}},e?1:3)}async getExtensionStates(){let e=await b.nvim.eval('join(globpath(&runtimepath, "", 0, 1), ",")'),t=this.runtimeExtensionStats(e),i=this.globalExtensionStats();return t.concat(i)}async globalExtensions(){if(process.env.COC_NO_PLUGINS=="1")return[];let e=[];for(let t of this.states.activated()){let i=R.join(this.modulesFolder,t);try{let r=await Nz(i,Rl);e.push({root:i,isLocal:!1,packageJSON:r})}catch(r){Om.error(`Error on load package.json of ${t}`,r)}}return e}globalExtensionStats(){let e=this.states.dependencies,t=this.states.lockedExtensions,i=[];return Object.entries(e).map(([r,o])=>{let s=R.join(this.modulesFolder,r),a=[],l=Bd(s,Rl,a);if(a.length>0){this.outputChannel.appendLine(`Error on load ${r} at ${s}: ${a.join(` +`)}`);return}l.name=r,i.push({id:r,root:s,isLocal:!1,version:l.version,description:l.description??"",isLocked:t.includes(r),exotic:/^https?:/.test(o),uri:oye(o),state:this.getExtensionState(r),packageJSON:l})}),Om.debug("globalExtensionStats:",i.length),i}runtimeExtensionStats(e){let t=this.states.lockedExtensions,i=e.split(","),r=[],o=new Set;return i.map(s=>{let a=[],l=Bd(s,b.version,a);if(a.length>0)return;let{name:u}=l;!u||this.states.hasExtension(u)||o.has(u)||(this.states.addLocalExtension(u,s),o.add(u),r.push({id:l.name,isLocal:!0,isLocked:t.includes(u),version:l.version,description:l.description??"",exotic:!1,root:s,state:this.getExtensionState(l.name),packageJSON:Object.freeze(l)}))}),r}cleanModulesFolder(){let t=this.states.globalIds.map(r=>r.replace(/\/.*$/,""));if(!F.existsSync(this.modulesFolder))return;let i=F.readdirSync(this.modulesFolder);for(let r of i){if(t.includes(r))continue;let o=R.join(this.modulesFolder,r),s=F.lstatSync(o);s.isSymbolicLink()?F.unlinkSync(o):s.isDirectory()&&F.rmSync(o,{recursive:!0,force:!0})}}dispose(){this.manager.dispose()}};Wt=new X1});var SS,Uz=D(()=>{"use strict";Je();at();SS=class{constructor(e){this.doc=e;this.lineWords=[];this._gitIgnored=!1;this.parseWords();let t=A.parse(e.uri);t.scheme==="file"&&AY(t.fsPath).then(i=>{this._gitIgnored=i})}getWords(){let e=[];for(let t of this.lineWords)t.forEach(i=>{e.includes(i)||e.push(i)});return e}parseWords(){let{lineWords:e,doc:t}=this,{chars:i}=t;for(let r of this.doc.textDocument.lines){let o=i.matchLine(r,2);e.push(o)}}get bufnr(){return this.doc.bufnr}get gitIgnored(){return this._gitIgnored}onChange(e){if(e.contentChanges.length==0)return;let{lineWords:t,doc:i}=this,{range:r,text:o}=e.contentChanges[0],{start:s,end:a}=r,l=s.line,c=a.line-l,h=i.textDocument.lines.slice(l,l+o.split(/\n/).length).map(g=>i.chars.matchLine(g,2));t.splice(l,c+1,...h)}*matchWords(e){let{lineWords:t}=this;e>=t.length&&(e=t.length-1);for(let i=0;iPl&&(i=al(i)),s1(n,i.charCodeAt(0))}var sye,aye,lye,uye,or,qd=D(()=>{"use strict";Re();ee();Se();Jt();nC();ce();Xe();pe();he();Ta();sye=["_","$","-"],aye=[95,36,45],lye=ge(80,20),uye=50,or=class{constructor(e){this.noMatchWords=new Set;this.disposables=[];this._disabled=!1;this.name=e.name,this.filepath=e.filepath||"",this.sourceType=e.sourceType||0,this.isSnippet=!!e.isSnippet,this.defaults=e,this.documentSelector=e.documentSelector;let t=`coc.source.${e.name}`;this.config=ye(b.initialConfiguration.get(t),{}),b.onDidChangeConfiguration(i=>{i.affectsConfiguration(t)&&(this.config=ye(b.initialConfiguration.get(t),{}))},null,this.disposables),_.on("CompleteDone",()=>{this.noMatchWords.clear()},null,this.disposables)}get nvim(){return b.nvim}get priority(){return this.getConfig("priority",1)}get triggerPatterns(){let e=this.getConfig("triggerPatterns",null);return te(e)?null:e.map(t=>Ue(t)?new RegExp(t+"$"):t)}get triggerOnly(){let e=this.defaults.triggerOnly;return _n(e)?e:Array.isArray(this.triggerPatterns)&&this.triggerPatterns.length>0}get triggerCharacters(){return le(this.getConfig("triggerCharacters",[]))}get firstMatch(){return this.getConfig("firstMatch",!0)}get optionalFns(){return this.defaults.optionalFns||[]}get shortcut(){let e=this.getConfig("shortcut","");return e||this.name.slice(0,3)}get enable(){return this._disabled?!1:this.getConfig("enable",!0)}get filetypes(){return this.getConfig("filetypes",null)}get disableSyntaxes(){return this.getConfig("disableSyntaxes",[])}getConfig(e,t){let i=this.config[e];return it(i)||i==null?t??null:i}toggle(){this._disabled=!this._disabled}get menu(){return""}async checkComplete(e){let{disableSyntaxes:t}=this;if(!te(t)&&e.synname){let r=e.synname.toLowerCase();if(t.findIndex(o=>r.includes(o.toLowerCase()))!==-1)return!1}let i=this.defaults.shouldComplete;return it(i)?!!await Promise.resolve(i.call(this,e)):!0}async refresh(){let e=this.defaults.refresh;it(e)&&await Promise.resolve(e.call(this))}async onCompleteDone(e,t){let i=this.defaults.onCompleteDone;it(i)&&await Promise.resolve(i.call(this,e,t))}async doComplete(e,t){if(!await this.checkComplete(e)||t.isCancellationRequested)return null;let r=this.defaults.doComplete;return await Promise.resolve(r.call(this,e,t))}async onCompleteResolve(e,t,i){let r=this.defaults.onCompleteResolve;it(r)&&await Promise.resolve(r.call(this,e,t,i))}async getResults(e,t,i,r,o){let{firstMatch:s,noMatchWords:a}=this,l=Date.now(),u=l,c=t.length,d=t.charCodeAt(0),h=Ld(t),g=xc(d),f=0;for(let m of e)for(let y of m){if(f++,f%100===0){let w=Date.now();if(w-u>15&&(await cr(),u=w),o.isCancellationRequested||w-l>lye)return!0}if(!(y.length<=1&&y.charCodeAt(0)<255||y===i||r.has(y)||a.has(y))){if(s&&!cye(d,g,y)){a.add(y);continue}if(c>1&&!Fd(h,g&&y[0].charCodeAt(0)>Pl?al(y):y)){a.add(y);continue}if(r.add(y),r.size==uye)return!0}}return!1}dispose(){Y(this.disposables)}}});function hye(n){var t,i;let e=((t=n.data)==null?void 0:t.ultisnip)===!0?{}:(i=n.data)==null?void 0:i.ultisnip;return e||void 0}function gye(n,e,t){let i=n.match(/^\s*/)[0],r=e.match(/^\s*/)[0];if(i===r)return 0;let o=r.length-i.length;return t.start.character+=o,t.end.character+=o,o}function pye(n,e){return Ye.is(e)&&n{"use strict";ae();kt();ql();Ce();Du();ee();Se();Ti();Xe();Be();$();pe();he();Ta();Gl();dye=J("source-language"),Am=class{constructor(e,t,i,r,o,s,a){this.name=e;this.shortcut=t;this.provider=i;this.documentSelector=r;this.triggerCharacters=o;this.allCommitCharacters=s;this.priority=a;this.sourceType=2;this._enabled=!0;this.itemDefaults={};this.resolving=new WeakMap}get enable(){return this._enabled}toggle(){this._enabled=!this._enabled}shouldCommit(e,t){return this.allCommitCharacters.includes(t)?!0:le(e.commitCharacters??this.itemDefaults.commitCharacters).includes(t)}async doComplete(e,t){let{triggerCharacter:i,bufnr:r,position:o}=e,s=this.getTriggerKind(e);this.triggerContext={lnum:o.line,character:o.character,line:e.line};let a={triggerKind:s,option:e};s==p.CompletionTriggerKind.TriggerCharacter&&(a.triggerCharacter=i);let l=b.getDocument(r).textDocument;await cr();let u=await Promise.resolve(this.provider.provideCompletionItems(l,o,t,a));if(!u||t.isCancellationRequested)return null;let c=Array.isArray(u)?u:u.items;if(!c||c.length==0)return null;let d=this.itemDefaults=$e(u.itemDefaults);return{isIncomplete:B8(u)?u.isIncomplete===!0:!1,items:c,itemDefaults:d}}onCompleteResolve(e,t,i){if(!it(this.provider.resolveCompletionItem))return;let o=this.resolving.get(e);if(o)return o;let s=!1;return o=new Promise(async(a,l)=>{let u=i.onCancellationRequested(()=>{this.resolving.delete(e),l(new Ct)});try{let c=await Promise.resolve(this.provider.resolveCompletionItem(e,i));if(u.dispose(),!i.isCancellationRequested)if(!c)s=!0,this.resolving.delete(e);else{if(c.textEdit){let d=Mt(t.line,t.col);c.textEdit=pye(d,c.textEdit)}Object.assign(e,c)}a()}catch(c){s=!0,this.resolving.delete(e),l(c)}}),s||this.resolving.set(e,o),o}async onCompleteDone(e,t){let i=b.getDocument(t.bufnr);await i.patchChange(!0);let r=!te(e.additionalTextEdits);r&&await mi.editsInsideSnippet(e.additionalTextEdits)&&mi.cancel();let o=i.version,s=await this.applyTextEdit(i,r,e,t);r&&(await i.applyEdits(e.additionalTextEdits,i.version!=o,!s),s&&await mi.selectCurrentPlaceholder()),e.command&&(ie.has(e.command.command)?await ie.execute(e.command):dye.warn(`Command "${e.command.command}" not registered to coc.nvim`))}async applyTextEdit(e,t,i,r){let{linenr:o,col:s}=r,{character:a,line:l}=this.triggerContext,u=await Kv(b.nvim);if(u.line!=o-1)return;let{textEdit:c,insertText:d,label:h}=i,g=IR(i,this.itemDefaults,void 0,r.insertMode);if(!g){let x=a+(r.insertMode=="insert"?0:r.followWord.length);g=M.create(u.line,Mt(l,s),u.line,x)}g.end.character{"use strict";ae();ql();Du();pe();he();qd();Xe();Nm=class extends or{async callOptionalFunc(e,t){if(!this.optionalFns.includes(e))return null;let r=`coc#source#${this.name}#${e}`;return await this.nvim.call(r,t)}async checkComplete(e){return await super.checkComplete(e)?this.optionalFns.includes("should_complete")?!!await this.callOptionalFunc("should_complete",[e]):!0:!1}async refresh(){await this.callOptionalFunc("refresh",[])}async insertSnippet(e,t){let i=await Kv(this.nvim),{line:r,col:o}=t,s=r.match(/^\s*/)[0],a=i.text.match(/^\s*/)[0],l=M.create(i.line,Mt(r,o)+a.length-s.length,i.line,i.character);await mi.insertSnippet(e,!0,l)}async onCompleteDone(e,t){this.optionalFns.includes("on_complete")?await this.callOptionalFunc("on_complete",[e]):e.isSnippet&&e.insertText&&await this.insertSnippet(e.insertText,t)}onEnter(e){if(!this.optionalFns.includes("on_enter"))return;let t=b.getDocument(e);if(!t)return;let{filetypes:i}=this;i&&!i.includes(t.filetype)||this.callOptionalFunc("on_enter",[{bufnr:e,uri:t.uri,languageId:t.filetype}])}async doComplete(e,t){if(!await this.checkComplete(e))return null;let r=await this.callOptionalFunc("get_startcol",[e]);if(t.isCancellationRequested)return null;let{col:o,input:s,line:a,colnr:l}=e;Xt(r)&&r>=0&&r!==o&&(s=zt(a,r,l-1),e=Object.assign({},e,{col:r,changed:o-r,input:s}));let u=await this.nvim.callAsync("coc#_do_complete",[this.name,e]);if(!u||u.length==0||t.isCancellationRequested)return null;let c=this.firstMatch&&s.length>0,d=c?s[0].toLowerCase():"",h=[];return u.forEach(g=>{let f=Ue(g)?{word:g}:g;if(c){let m=(f.filterText??f.word)[0];if(d&&m.toLowerCase()!==d)return}this.isSnippet&&(f.isSnippet=!0),h.push(f)}),{items:h,startcol:Xt(r)?r:void 0}}}});var Gz={};qs(Gz,{Around:()=>DS,register:()=>fye});function fye(n,e){let t=new DS(e);n.set("around",t)}var DS,zz=D(()=>{"use strict";ee();qd();DS=class extends or{constructor(t){super({name:"around",filepath:__filename});this.keywords=t}async doComplete(t,i){let{bufnr:r,input:o,word:s,linenr:a,triggerForInComplete:l}=t,u=this.keywords.getItem(r);if(await cr(),l||(this.noMatchWords=new Set),o.length===0||!u||i.isCancellationRequested)return null;let c=u.matchWords(a-1),d=new Set;return{isIncomplete:await this.getResults([c],o,s,d,i),items:Array.from(d).map(g=>({word:g}))}}}});var Kz={};qs(Kz,{Buffer:()=>TS,register:()=>mye});function mye(n,e){let t=new TS(e);n.set("buffer",t)}var TS,Qz=D(()=>{"use strict";ee();qd();TS=class extends or{constructor(t){super({name:"buffer",filepath:__filename});this.keywords=t}get ignoreGitignore(){return this.getConfig("ignoreGitignore",!0)}async doComplete(t,i){let{bufnr:r,input:o,word:s,triggerForInComplete:a}=t;if(await cr(),a||(this.noMatchWords=new Set),o.length===0||i.isCancellationRequested)return null;let l=[];for(let d of this.keywords.items)d.bufnr===r||this.ignoreGitignore&&d.gitIgnored||l.push(d.matchWords(0));let u=new Set;return{isIncomplete:await this.getResults(l,o,s,u,i),items:Array.from(u).map(d=>({word:d}))}}}});var rK={};qs(rK,{File:()=>kS,filterFiles:()=>tK,getDirectory:()=>iK,getFileItem:()=>eK,getItemsFromRoot:()=>nK,register:()=>yye,resolveEnvVariables:()=>Vz});function Vz(n,e=process.env){let t=n;return t=t.replace(/%([^%]+)%/g,(i,r)=>e[r]??i),t=t.replace(/\$([A-Z_]+[A-Z0-9_]*)|\${([A-Z0-9_]*)}/gi,(i,r,o)=>e[r||o]??i),t}async function eK(n,e){let t=R.join(n,e),i=await jn(t);if(i){let r=i.isDirectory(),o=r?e+"/":e;return{word:e,abbr:o,kind:r?ne.Folder:ne.File}}return null}function tK(n,e,t=[]){return n.filter(i=>{if(!i||e&&i.startsWith("."))return!1;for(let r of t)if(si(i,r,{dot:!0}))return!1;return!0})}function iK(n,e){let t=/[\\/]$/.test(n)?n:R.dirname(n);return R.isAbsolute(n)?t:R.join(e,t)}async function nK(n,e,t,i){let r=[],o=iK(n,e),s=await jn(o);if(s&&s.isDirectory()){let a=await(0,st.promisify)(F.readdir)(o);a=tK(a,t,i);let l=await Promise.all(a.map(u=>eK(o,u)));r=r.concat(l)}return r=r.filter(a=>a!=null),r}function yye(n){n.set("file",new kS(eo))}var bye,kS,oK=D(()=>{"use strict";ae();at();ce();Il();pe();he();qd();bye=/(?:\.{0,2}|~|\$HOME|([\w]+)|[a-zA-Z]:|)(\/|\\+)(?:[\u4E00-\u9FA5\u00A0-\u024F\w .@()-]+(\/|\\+))*(?:[\u4E00-\u9FA5\u00A0-\u024F\w .@()-])*$/;kS=class extends or{constructor(t){super({name:"file",filepath:__filename});this.isWindows=t}get triggerCharacters(){let t=this.getConfig("triggerCharacters",[]);return this.isWindows?t:t.filter(i=>i!="\\")}getPathOption(t){let{line:i,colnr:r}=t,o=zt(i,0,r-1);if(o=Vz(o),!o||o.endsWith("//"))return null;let s=o.match(bye);if(s&&s.length){let a=b.expand(s[0]),l=s[0].match(/[^/\\]*$/)[0];return{pathstr:a,part:s[1],startcol:r-l.length-1,input:l}}return null}shouldTrim(t){return this.getConfig("trimSameExts",[]).includes(t)}async getRoot(t,i,r,o){let s,a=r?R.dirname(r):"";if(t.startsWith("."))s=r?a:o;else if(this.isWindows&&/^\w+:/.test(t))s=/[\\/]$/.test(t)?t:R.win32.dirname(t);else if(!this.isWindows&&t.startsWith("/"))s=t.endsWith("/")?t:R.posix.dirname(t);else if(i){let l=await(0,st.promisify)(F.exists)(R.join(a,i));l?s=a:(l=await(0,st.promisify)(F.exists)(R.join(o,i)),l&&(s=o))}else s=o;return s}async doComplete(t,i){let{filepath:r}=t,o=this.getPathOption(t);if(!o||o.startcol{let y=R.extname(m.word);return m.word=f&&y===c?m.word.replace(c,""):m.word,{word:`${u}${m.word}`,abbr:`${u}${m.abbr}`,menu:this.menu}})}}}});var N1={};qs(N1,{Sources:()=>RS,default:()=>_i,getSourceType:()=>sK,logError:()=>z1});function z1(n){PS.error("Error on source create",n)}function sK(n){return n===0?"native":n===1?"remote":"service"}var PS,G1,RS,_i,Su=D(()=>{"use strict";Re();bu();Ce();ee();Se();at();Xe();ce();$();pe();We();he();Uz();qd();$z();Xz();Ta();Gl();PS=J("sources"),G1=class{constructor(){this.name="$words";this.shortcut="";this.triggerOnly=!0;this.words=[]}doComplete(e){return{items:this.words.map(t=>({word:t,filterText:e.input}))}}},RS=class{constructor(){this.sourceMap=new Map;this.disposables=[];this.remoteSourcePaths=[];this.wordsSource=new G1}init(){this.keywords=b.registerBufferSync(e=>new SS(e)),this.createNativeSources(),this.createRemoteSources(),_.on("BufEnter",this.onDocumentEnter,this,this.disposables),b.onDidRuntimePathChange(e=>{for(let t of e)this.createVimSources(t).catch(z1)},null,this.disposables)}get nvim(){return b.nvim}getKeywordsBuffer(e){return this.keywords.getItem(e)}setWords(e){this.wordsSource.words=e}createNativeSources(){this.sourceMap.set(this.wordsSource.name,this.wordsSource),Promise.all([Promise.resolve().then(()=>(zz(),Gz)).then(e=>{e.register(this.sourceMap,this.keywords)}),Promise.resolve().then(()=>(Qz(),Kz)).then(e=>{e.register(this.sourceMap,this.keywords)}),Promise.resolve().then(()=>(oK(),rK)).then(e=>{e.register(this.sourceMap)})])}createLanguageSource(e,t,i,r,o,s,a){let l=new Am(e,t,r,i,le(o),le(a),s);return PS.trace("created service source",e),this.sourceMap.set(e,l),{dispose:()=>{this.sourceMap.delete(e)}}}async createVimSourceExtension(e){let{nvim:t}=this;try{let i=R.basename(e,".vim");await t.command(`source ${e}`);let r=await t.call("coc#_remote_fns",i);for(let u of["init","complete"])if(!r.includes(u))throw new Error(`function "coc#source#${i}#${u}" not found`);let o=await t.call(`coc#source#${i}#init`,[]),s={name:`coc-vim-source-${i}`,engines:{coc:">= 0.0.1"},activationEvents:o.filetypes?o.filetypes.map(u=>`onLanguage:${u}`):["*"],contributes:{configuration:{properties:{[`coc.source.${i}.enable`]:{type:"boolean",default:!0},[`coc.source.${i}.firstMatch`]:{type:"boolean",default:!!o.firstMatch},[`coc.source.${i}.triggerCharacters`]:{type:"number",default:o.triggerCharacters??[]},[`coc.source.${i}.priority`]:{type:"number",default:o.priority??9},[`coc.source.${i}.shortcut`]:{type:"string",default:o.shortcut??i.slice(0,3).toUpperCase(),description:"Shortcut text shown in complete menu."},[`coc.source.${i}.disableSyntaxes`]:{type:"array",default:[],items:{type:"string"}},[`coc.source.${i}.filetypes`]:{type:"array",default:o.filetypes||null,description:"Enabled filetypes.",items:{type:"string"}}}}}},a=!1,l={id:s.name,packageJSON:s,exports:void 0,extensionPath:e,activate:()=>{a=!0;let u=new Nm({name:i,filepath:e,isSnippet:o.isSnippet,sourceType:1,triggerOnly:!!o.triggerOnly,optionalFns:r.filter(c=>!["init","complete"].includes(c))});return this.addSource(u),Promise.resolve()}};Object.defineProperty(l,"isActive",{get:()=>a}),await Wt.manager.registerInternalExtension(l,()=>{a=!1,this.removeSource(i)})}catch(i){k.showErrorMessage(`Error on create vim source from ${e}: ${i}`)}}createRemoteSources(){let e=b.env.runtimepath.split(",");for(let t of e)this.createVimSources(t).catch(z1)}async createVimSources(e){if(this.remoteSourcePaths.includes(e)||!e)return;this.remoteSourcePaths.push(e);let t=R.join(e,"autoload/coc/source"),i=await jn(t);if(i&&i.isDirectory()){let o=(await(0,st.promisify)(F.readdir)(t)).filter(s=>s.endsWith(".vim")).map(s=>R.join(t,s));await Promise.allSettled(o.map(s=>this.createVimSourceExtension(s)))}}get names(){return Array.from(this.sourceMap.keys())}get sources(){return Array.from(this.sourceMap.values())}has(e){return this.names.findIndex(t=>t==e)!=-1}getSource(e){return this.sourceMap.get(e)??null}shouldCommit(e,t,i){return!t||e==null?!1:it(e.shouldCommit)?e.shouldCommit(t,i):!1}getSources(e){let{source:t}=e;if(t)return le(this.getSource(t));let i=b.getUri(e.bufnr);return this.getNormalSources(e.filetype,i)}getNormalSources(e,t){let i=e.split(".");return this.sources.filter(o=>{let{filetypes:s,triggerOnly:a,documentSelector:l,enable:u}=o;return!(!u||a||s&&!Pg(s,i)||l&&i.every(c=>b.match(l,{uri:t,languageId:c})==0))})}checkTrigger(e,t,i){let{triggerCharacters:r,triggerPatterns:o}=e;return!!(!te(r)&&r.includes(i)||!te(o)&&o.findIndex(s=>s.test(t))!==-1)}shouldTrigger(e,t,i){return this.getTriggerSources(e,t,i).length>0}getTriggerSources(e,t,i,r=[]){if(!e)return[];let o=e[e.length-1],s=t.split(".");return this.sources.filter(a=>{let{filetypes:l,enable:u,documentSelector:c,name:d}=a;return r.includes(d)||!u||l&&!Pg(l,s)||c&&s.every(h=>b.match(c,{uri:i,languageId:h})==0)?!1:this.checkTrigger(a,e,o)})}addSource(e){let{name:t}=e;return this.names.includes(t)&&PS.warn(`Recreate source ${t}`),this.sourceMap.set(t,e),p.Disposable.create(()=>{this.removeSource(e)})}removeSource(e){let t=typeof e=="string"?e:e.name,i=typeof e=="string"?this.sourceMap.get(e):e;i&&typeof i.dispose=="function"&&i.dispose(),this.sourceMap.delete(t)}async refresh(e){for(let t of this.sources)(!e||t.name==e)&&typeof t.refresh=="function"&&await Promise.resolve(t.refresh())}toggleSource(e){let t=this.getSource(e);t&&typeof t.toggle=="function"&&t.toggle()}sourceStats(){var i;let e=[],t=b.initialConfiguration.get("suggest.languageSourcePriority");for(let r of this.sourceMap.values())r.name!=="$words"&&e.push({name:r.name,priority:Ow(r,t),triggerCharacters:le(r.triggerCharacters),shortcut:se(r.shortcut),filetypes:le(r.filetypes??((i=r.documentSelector)==null?void 0:i.map(o=>Ue(o)?o:o.language))),filepath:se(r.filepath),type:sK(r.sourceType),disabled:!r.enable});return e}onDocumentEnter(e){let{sources:t}=this;for(let i of t)i.enable&&it(i.onEnter)&&i.onEnter(e)}createSource(e){if(typeof e.name!="string"||typeof e.doComplete!="function")throw PS.error("Bad config for createSource:",e),new TypeError("name and doComplete required for createSource");let t=new or(Object.assign({sourceType:2},e));return this.addSource(t)}dispose(){Y(this.disposables)}};_i=new RS});var aK,Nt,K1,I,Te=D(()=>{"use strict";ae();td();j3();A3();N3();H3();B3();q3();W3();Z3();J3();$3();X3();G3();z3();K3();OR();V3();eU();tU();iU();nU();rU();oU();sU();aU();lU();cU();dU();ee();Xe();$();pe();aK=ge(500,10),Nt=(B=>(B.FormatOnType="formatOnType",B.Rename="rename",B.OnTypeEdit="onTypeEdit",B.DocumentLink="documentLink",B.DocumentColor="documentColor",B.FoldingRange="foldingRange",B.Format="format",B.CodeAction="codeAction",B.FormatRange="formatRange",B.Hover="hover",B.Signature="signature",B.WorkspaceSymbols="workspaceSymbols",B.DocumentSymbol="documentSymbol",B.DocumentHighlight="documentHighlight",B.Definition="definition",B.Declaration="declaration",B.TypeDefinition="typeDefinition",B.Reference="reference",B.Implementation="implementation",B.CodeLens="codeLens",B.SelectionRange="selectionRange",B.CallHierarchy="callHierarchy",B.SemanticTokens="semanticTokens",B.SemanticTokensRange="semanticTokensRange",B.LinkedEditing="linkedEditing",B.InlayHint="inlayHint",B.InlineValue="inlineValue",B.TypeHierarchy="typeHierarchy",B))(Nt||{}),K1=class{constructor(){this._onDidSemanticTokensRefresh=new p.Emitter;this._onDidInlayHintRefresh=new p.Emitter;this._onDidCodeLensRefresh=new p.Emitter;this._onDidColorsRefresh=new p.Emitter;this._onDidLinksRefresh=new p.Emitter;this.onDidSemanticTokensRefresh=this._onDidSemanticTokensRefresh.event;this.onDidInlayHintRefresh=this._onDidInlayHintRefresh.event;this.onDidCodeLensRefresh=this._onDidCodeLensRefresh.event;this.onDidColorsRefresh=this._onDidColorsRefresh.event;this.onDidLinksRefresh=this._onDidLinksRefresh.event;this.onTypeFormatManager=new gf;this.documentLinkManager=new tf;this.documentColorManager=new Vp;this.foldingRangeManager=new rf;this.renameManager=new ff;this.formatManager=new of;this.codeActionManager=new Gp;this.workspaceSymbolsManager=new Cf;this.formatRangeManager=new sf;this.hoverManager=new af;this.signatureManager=new vf;this.documentSymbolManager=new nf;this.documentHighlightManager=new ef;this.definitionManager=new Qp;this.declarationManager=new Kp;this.typeDefinitionManager=new wf;this.typeHierarchyManager=new xf;this.referenceManager=new pf;this.implementationManager=new lf;this.codeLensManager=new zp;this.selectionRangeManager=new mf;this.callHierarchyManager=new Xp;this.semanticTokensManager=new bf;this.semanticTokensRangeManager=new yf;this.linkedEditingManager=new hf;this.inlayHintManager=new uf;this.inlineValueManager=new df;this.registerReferenceProvider=this.registerReferencesProvider}hasFormatProvider(e){return!!(this.formatManager.hasProvider(e)||this.formatRangeManager.hasProvider(e))}registerOnTypeFormattingEditProvider(e,t,i){return this.onTypeFormatManager.register(e,t,i)}registerCompletionItemProvider(e,t,i,r,o=[],s,a){i=Ue(i)?[{language:i}]:i;let l=(Su(),Jo(N1)).default;return l.removeSource(e),l.createLanguageSource(e,t,i,r,o,s,a)}registerCodeActionProvider(e,t,i,r){return this.codeActionManager.register(e,t,i,r)}registerHoverProvider(e,t){return this.hoverManager.register(e,t)}registerSelectionRangeProvider(e,t){return this.selectionRangeManager.register(e,t)}registerSignatureHelpProvider(e,t,i){return this.signatureManager.register(e,t,i)}registerDocumentSymbolProvider(e,t,i){return i&&(t.meta=i),this.documentSymbolManager.register(e,t)}registerFoldingRangeProvider(e,t){return this.foldingRangeManager.register(e,t)}registerDocumentHighlightProvider(e,t){return this.documentHighlightManager.register(e,t)}registerDocumentLinkProvider(e,t){this._onDidLinksRefresh.fire(e);let i=this.documentLinkManager.register(e,t);return p.Disposable.create(()=>{i.dispose(),this._onDidLinksRefresh.fire(e)})}registerDocumentColorProvider(e,t){this._onDidColorsRefresh.fire(e);let i=this.documentColorManager.register(e,t);return p.Disposable.create(()=>{i.dispose(),this._onDidColorsRefresh.fire(e)})}registerDefinitionProvider(e,t){return this.definitionManager.register(e,t)}registerDeclarationProvider(e,t){return this.declarationManager.register(e,t)}registerTypeDefinitionProvider(e,t){return this.typeDefinitionManager.register(e,t)}registerTypeHierarchyProvider(e,t){return this.typeHierarchyManager.register(e,t)}registerImplementationProvider(e,t){return this.implementationManager.register(e,t)}registerReferencesProvider(e,t){return this.referenceManager.register(e,t)}registerRenameProvider(e,t){return this.renameManager.register(e,t)}registerWorkspaceSymbolProvider(e){return arguments.length>1&&it(arguments[1].provideWorkspaceSymbols)&&(e=arguments[1]),this.workspaceSymbolsManager.register(e)}registerDocumentFormatProvider(e,t,i=0){return this.formatManager.register(e,t,i)}registerDocumentRangeFormatProvider(e,t,i=0){return this.formatRangeManager.register(e,t,i)}registerCallHierarchyProvider(e,t){return this.callHierarchyManager.register(e,t)}registerCodeLensProvider(e,t){return this.registerProviderWithEvent(e,t,"onDidChangeCodeLenses",this.codeLensManager,this._onDidCodeLensRefresh)}registerDocumentSemanticTokensProvider(e,t,i){return this.registerProviderWithEvent(e,t,"onDidChangeSemanticTokens",this.semanticTokensManager,this._onDidSemanticTokensRefresh,i)}registerDocumentRangeSemanticTokensProvider(e,t,i){let r=setTimeout(()=>{this._onDidSemanticTokensRefresh.fire(e)},aK),o=this.semanticTokensRangeManager.register(e,t,i);return p.Disposable.create(()=>{clearTimeout(r),o.dispose(),this._onDidSemanticTokensRefresh.fire(e)})}registerInlayHintsProvider(e,t){return this.registerProviderWithEvent(e,t,"onDidChangeInlayHints",this.inlayHintManager,this._onDidInlayHintRefresh)}registerInlineValuesProvider(e,t){return this.inlineValueManager.register(e,t)}registerLinkedEditingRangeProvider(e,t){return this.linkedEditingManager.register(e,t)}shouldTriggerSignatureHelp(e,t){return this.signatureManager.shouldTrigger(e,t)}async getHover(e,t,i){return await this.hoverManager.provideHover(e,t,i)}async getSignatureHelp(e,t,i,r){return await this.signatureManager.provideSignatureHelp(e,t,i,r)}async getDefinition(e,t,i){return await this.definitionManager.provideDefinition(e,t,i)}async getDefinitionLinks(e,t,i){return await this.definitionManager.provideDefinitionLinks(e,t,i)}async getDeclaration(e,t,i){return await this.declarationManager.provideDeclaration(e,t,i)}async getTypeDefinition(e,t,i){return await this.typeDefinitionManager.provideTypeDefinition(e,t,i)}async getImplementation(e,t,i){return await this.implementationManager.provideImplementations(e,t,i)}async getReferences(e,t,i,r){return await this.referenceManager.provideReferences(e,i,t,r)}async getDocumentSymbol(e,t){return await this.documentSymbolManager.provideDocumentSymbols(e,t)}getDocumentSymbolMetadata(e){return this.documentSymbolManager.getMetaData(e)}async getSelectionRanges(e,t,i){return await this.selectionRangeManager.provideSelectionRanges(e,t,i)}async getWorkspaceSymbols(e,t){return await this.workspaceSymbolsManager.provideWorkspaceSymbols(se(e),t)}async resolveWorkspaceSymbol(e,t){return await this.workspaceSymbolsManager.resolveWorkspaceSymbol(e,t)}async prepareRename(e,t,i){return await this.renameManager.prepareRename(e,t,i)}async provideRenameEdits(e,t,i,r){return await this.renameManager.provideRenameEdits(e,t,i,r)}async provideDocumentFormattingEdits(e,t,i){let r=await this.formatManager.provideDocumentFormattingEdits(e,t,i);if(r==null){if(!this.formatRangeManager.hasProvider(e))return null;let s=e.positionAt(e.getText().length),a=M.create(V.create(0,0),s);return await this.provideDocumentRangeFormattingEdits(e,a,t,i)}return r}async provideDocumentRangeFormattingEdits(e,t,i,r){return await this.formatRangeManager.provideDocumentRangeFormattingEdits(e,t,i,r)}async getCodeActions(e,t,i,r){return await this.codeActionManager.provideCodeActions(e,t,i,r)}async getDocumentHighLight(e,t,i){return await this.documentHighlightManager.provideDocumentHighlights(e,t,i)}async getDocumentLinks(e,t){return await this.documentLinkManager.provideDocumentLinks(e,t)}async resolveDocumentLink(e,t){return await this.documentLinkManager.resolveDocumentLink(e,t)}async provideDocumentColors(e,t){return await this.documentColorManager.provideDocumentColors(e,t)}async provideFoldingRanges(e,t,i){return await this.foldingRangeManager.provideFoldingRanges(e,t,i)}async provideColorPresentations(e,t,i){return await this.documentColorManager.provideColorPresentations(e,t,i)}async getCodeLens(e,t){return await this.codeLensManager.provideCodeLenses(e,t)}async resolveCodeLens(e,t){return await this.codeLensManager.resolveCodeLens(e,t)}async resolveCodeAction(e,t){return await this.codeActionManager.resolveCodeAction(e,t)}async provideDocumentOnTypeEdits(e,t,i,r){return this.onTypeFormatManager.onCharacterType(e,t,i,r)}canFormatOnType(e,t){return this.onTypeFormatManager.couldTrigger(t,e)!=null}async prepareCallHierarchy(e,t,i){return this.callHierarchyManager.prepareCallHierarchy(e,t,i)}async provideIncomingCalls(e,t,i){return this.callHierarchyManager.provideCallHierarchyIncomingCalls(e,t,i)}async provideOutgoingCalls(e,t,i){return this.callHierarchyManager.provideCallHierarchyOutgoingCalls(e,t,i)}getLegend(e,t){return t?this.semanticTokensRangeManager.getLegend(e):this.semanticTokensManager.getLegend(e)}hasSemanticTokensEdits(e){return this.semanticTokensManager.hasSemanticTokensEdits(e)}async provideDocumentSemanticTokens(e,t){return this.semanticTokensManager.provideDocumentSemanticTokens(e,t)}async provideDocumentSemanticTokensEdits(e,t,i){return this.semanticTokensManager.provideDocumentSemanticTokensEdits(e,t,i)}async provideDocumentRangeSemanticTokens(e,t,i){return this.semanticTokensRangeManager.provideDocumentRangeSemanticTokens(e,t,i)}async provideInlayHints(e,t,i){return this.inlayHintManager.provideInlayHints(e,t,i)}async resolveInlayHint(e,t){return this.inlayHintManager.resolveInlayHint(e,t)}async provideLinkedEdits(e,t,i){return this.linkedEditingManager.provideLinkedEditingRanges(e,t,i)}async provideInlineValues(e,t,i,r){return this.inlineValueManager.provideInlineValues(e,t,i,r)}async prepareTypeHierarchy(e,t,i){return this.typeHierarchyManager.prepareTypeHierarchy(e,t,i)}async provideTypeHierarchySupertypes(e,t){return this.typeHierarchyManager.provideTypeHierarchySupertypes(e,t)}async provideTypeHierarchySubtypes(e,t){return this.typeHierarchyManager.provideTypeHierarchySubtypes(e,t)}createDiagnosticCollection(e){return hi.create(e)}registerProviderWithEvent(e,t,i,r,o,s){let a=[],l=setTimeout(()=>{o.fire(e)},aK);return a.push(p.Disposable.create(()=>{clearTimeout(l)})),it(t[i])&&a.push(t[i](()=>{clearTimeout(l),o.fire(e)})),a.push(r.register(e,t,s)),p.Disposable.create(()=>{Y(a),o.fire(e)})}hasProvider(e,t){switch(e){case"onTypeEdit":case"formatOnType":return this.onTypeFormatManager.hasProvider(t);case"rename":return this.renameManager.hasProvider(t);case"documentLink":return this.documentLinkManager.hasProvider(t);case"documentColor":return this.documentColorManager.hasProvider(t);case"foldingRange":return this.foldingRangeManager.hasProvider(t);case"format":return this.formatManager.hasProvider(t)||this.formatRangeManager.hasProvider(t);case"codeAction":return this.codeActionManager.hasProvider(t);case"workspaceSymbols":return this.workspaceSymbolsManager.hasProvider();case"formatRange":return this.formatRangeManager.hasProvider(t);case"hover":return this.hoverManager.hasProvider(t);case"signature":return this.signatureManager.hasProvider(t);case"documentSymbol":return this.documentSymbolManager.hasProvider(t);case"documentHighlight":return this.documentHighlightManager.hasProvider(t);case"definition":return this.definitionManager.hasProvider(t);case"declaration":return this.declarationManager.hasProvider(t);case"typeDefinition":return this.typeDefinitionManager.hasProvider(t);case"reference":return this.referenceManager.hasProvider(t);case"implementation":return this.implementationManager.hasProvider(t);case"codeLens":return this.codeLensManager.hasProvider(t);case"selectionRange":return this.selectionRangeManager.hasProvider(t);case"callHierarchy":return this.callHierarchyManager.hasProvider(t);case"semanticTokens":return this.semanticTokensManager.hasProvider(t);case"semanticTokensRange":return this.semanticTokensRangeManager.hasProvider(t);case"linkedEditing":return this.linkedEditingManager.hasProvider(t);case"inlayHint":return this.inlayHintManager.hasProvider(t);case"inlineValue":return this.inlineValueManager.hasProvider(t);case"typeHierarchy":return this.typeHierarchyManager.hasProvider(t);default:return!1}}},I=new K1});var Tu,Hm,lK=D(()=>{"use strict";ae();Re();Te();Se();Be();Xe();Pt();he();ee();Tu=class{static async create(e,t,i){let{position:r}=t,o=[t.linenr,t.colnr];if(!e)return Tu.None;let s=b.getDocument(t.bufnr),a=await I.getSelectionRanges(s.textDocument,[r],i);if(!a||i.isCancellationRequested)return Tu.None;let l=[],u=d=>{d&&d.range.end.line-d.range.start.line<2e3&&(l.unshift(d.range),u(d.parent))};u(le(a)[0]);let c=l.length>0?await Promise.race([ny(100,i),b.computeWordRanges(t.bufnr,l[0],i)]):void 0;return St(c)?(delete c[t.word],new class extends Tu{distance(d,h){if(!Fe([_.cursor.lnum,_.cursor.col],o))return 0;if(h.kind===ne.Keyword||$e(h.source).name==="snippets")return 2<<20;let g=c[h.word];if(te(g))return 2<<20;let f=cY(g,M.create(d,d),wa),m=f>=0?g[f]:g[Math.max(0,~f-1)],y=l.length;for(let w of l){if(!ri(m,w))break;y-=1}return y}}):Tu.None}},Hm=Tu;Hm.None=new class extends Tu{distance(){return 0}}});function Dye(n,e,t,i){let r=t.sortText,o=i.sortText;if(t.score!==i.score)return i.score-t.score;if(t.priority!==i.priority)return i.priority-t.priority;if(t.source===i.source&&r!==o)return r{"use strict";ae();Ce();ee();Se();Pc();Xe();aa();$();pe();he();Ta();Gl();lK();ku=J("completion-complete"),wye=2<<20,xye=50,Cye=5e3,Sye=200,Bm=class{constructor(e,t,i,r){this.option=e;this.document=t;this.config=i;this.sources=r;this.results=new Map;this._input="";this._completing=!1;this.names=[];this.cid=0;this.minCharacter=Number.MAX_SAFE_INTEGER;this._onDidRefresh=new p.Emitter;this.tokenSources=new Set;this.tokensInfo=new WeakMap;this.itemsMap=new WeakMap;this.onDidRefresh=this._onDidRefresh.event;this.inputStart=Mt(e.line,e.col),this.timeout=Rk(this.config.timeout,xye,Cye),r.sort((o,s)=>(s.priority??99)-(o.priority??99)),this.names=r.map(o=>o.name),this.asciiMatch=i.asciiMatch&&p3(e.input)}get nvim(){return b.nvim}fireRefresh(e){clearTimeout(this.timer),e?this.timer=setTimeout(()=>{this._onDidRefresh.fire()},e):this._onDidRefresh.fire()}get totalLength(){let e=0;for(let t of this.results.values())e+=t.items.length;return e}resolveItem(e){if(!!e)return{source:e.source,item:this.itemsMap.get(e)}}get isCompleting(){return this._completing}get input(){return this._input}get isEmpty(){return this.results.size===0}get hasInComplete(){for(let e of this.results.values())if(e.isIncomplete)return!0;return!1}getIncompleteSources(){return this.sources.filter(e=>{let t=this.results.get(e.name);return t&&t.isIncomplete===!0})}async doComplete(){let e=this.createTokenSource(!1),t=e.token,i=await Promise.all([this.nvim.call("coc#util#synname",[]),this.nvim.call("coc#_suggest_variables",[]),this.document.patchChange()]);if(t.isCancellationRequested)return;this.option.synname=i[0];let r=i[1];if(r.disable)return ku.warn("suggest cancelled by b:coc_suggest_disable"),!0;if(!te(r.disabled_sources)&&(this.sources=this.sources.filter(o=>!r.disabled_sources.includes(o.name)),this.sources.length===0))return ku.warn("suggest cancelled by b:coc_disabled_sources"),!0;if(!te(r.blacklist)&&r.blacklist.includes(this.option.input))return ku.warn("suggest cancelled by b:coc_suggest_blacklist"),!0;Hm.create(this.config.localityBonus,this.option,t).then(o=>{this.wordDistance=o}),await ny(Rk(this.config.triggerCompletionWait,0,Sye),e.token),await this.completeSources(this.sources,e,this.cid)}async completeSources(e,t,i){let r=t.token;if(r.isCancellationRequested)return;this._completing=!0;let o=new Set;e.forEach(d=>o.add(d.name));let s,a,l=new Promise(d=>{a=r.onCancellationRequested(()=>{clearTimeout(s),d()}),s=setTimeout(()=>{let h=Array.from(o);a.dispose(),t.cancel(),ku.warn(`Completion timeout after ${this.timeout}ms`,h),this.nvim.setVar("coc_timeout_sources",h,!0),d()},this.timeout)}),u=this.getDefaultRange(),c=e.map(d=>this.completeSource(d,u,r).then(h=>{o.delete(d.name),!(r.isCancellationRequested||i!=0||this.cid>0&&this._completing)&&(o.size===0?this.fireRefresh(0):h&&this.fireRefresh(16))}));await Promise.race([l,Promise.allSettled(c)]),this.tokenSources.delete(t),a.dispose(),clearTimeout(s),i===this.cid&&(this._completing=!1)}async completeSource(e,t,i){let r=Object.assign({},this.option),{asciiMatch:o}=this,s=this.config.insertMode,a=e.name,l=!1;try{if(it(e.shouldComplete)&&(!await Promise.resolve(e.shouldComplete(r))||i.isCancellationRequested))return;let u=Date.now(),c=this.itemsMap;await new Promise((d,h)=>{Promise.resolve(e.doComplete(r,i)).then(g=>{if(i.isCancellationRequested){d(void 0);return}let f=g?g.items.length:0;if(ku.debug(`Source "${a}" finished with ${f} items ms cost:`,Date.now()-u),f>0){if(Xt(g.startcol)){let C=r.linenr-1;t=M.create(C,Mt(r.line,g.startcol),C,t.end.character)}let m=Ow(e,this.config.languageSourcePriority),y={source:e,insertMode:s,priority:m,asciiMatch:o,itemDefaults:g.itemDefaults,range:t},w=new Mw(this.inputStart,y,r),x=g.items.reduce((C,P)=>{let T=w.convertToDurationItem(P);return T?(c.set(T,P),C.push(T),C):(ku.error(`Unexpected completion item from ${a}:`,P),C)},[]);this.minCharacter=Math.min(this.minCharacter,w.minCharacter),this.results.set(a,{items:x,isIncomplete:g.isIncomplete===!0}),l=!0}else this.results.delete(a);d()},g=>{h(g)})})}catch(u){ku.error("Complete error:",e.name,u)}return l}async completeInComplete(e){let{document:t}=this;this.cancelInComplete();let i=this.createTokenSource(!0),r=i.token;await t.patchChange(!0);let{input:o,colnr:s,linenr:a,followWord:l,position:u}=this.option;Object.assign(this.option,{word:e+l,input:e,line:t.getline(a-1),position:{line:u.line,character:u.character+e.length-o.length},colnr:s+(e.length-o.length),triggerCharacter:void 0,triggerForInComplete:!0}),this.cid++;let c=this.getIncompleteSources();if(await this.completeSources(c,i,this.cid),!r.isCancellationRequested)return this.filterItems(e)}filterItems(e){let{results:t,names:i,option:r,inputStart:o}=this;this._input=e;let s=e.length,{maxItemCount:a,defaultSortMethod:l,removeDuplicateItems:u}=this.config,c=[],d=new Set,h=s==0,g=e.toLowerCase(),f=!this.config.filterGraceful||this.totalLength>2e3?Ml:da,m={boostFullMatch:!0,firstMatchCanBeWeak:!1},y=V.create(r.linenr-1,o);for(let w of i){let x=t.get(w);if(!x)continue;let C=x.items;for(let P=0;P0){let X=j.slice(0,T.delta);K=f(X+e,X+g,0,j,j.toLowerCase(),0,m)}else K=f(e,g,0,j,j.toLowerCase(),0,m);if(K==null)continue;T.score=K[0],T.positions=K,this.wordDistance&&(T.localBonus=wye-this.wordDistance.distance(y,T))}d.add(O),c.push(T)}}return c.sort(Dye.bind(null,h,l)),this.limitCompleteItems(c.slice(0,a))}async filterResults(e){return clearTimeout(this.timer),e!==this.option.input&&this.hasInComplete?await this.completeInComplete(e):this.filterItems(e)}limitCompleteItems(e){let{highPrioritySourceLimit:t,lowPrioritySourceLimit:i}=this.config;if(!t&&!i)return e;let r=new Map;return e.filter(o=>{let{priority:s,source:a}=o,l=s<90,u=r.get(a)||0;return i&&l&&u==i||t&&!l&&u==t?!1:(r.set(a,u+1),!0)})}getDefaultRange(){let{insertMode:e}=this.config,{linenr:t,followWord:i,position:r}=this.option,o=t-1,s=r.character+(e=="replace"?i.length:0);return M.create(o,this.inputStart,o,s)}createTokenSource(e){let t=new p.CancellationTokenSource;return this.tokenSources.add(t),t.token.onCancellationRequested(()=>{this.tokenSources.delete(t)}),this.tokensInfo.set(t,e),t}cancelInComplete(){let{tokenSources:e,tokensInfo:t}=this;for(let i of Array.from(e))t.get(i)===!0&&i.cancel()}cancel(){let{tokenSources:e,timer:t}=this;clearTimeout(t);for(let i of Array.from(e))i.cancel();e.clear(),this._completing=!1}dispose(){this.cancel(),this.results.clear(),this._onDidRefresh.dispose()}}});var Tye,kye,qm,cK=D(()=>{"use strict";Ce();FP();ee();Ti();Xe();$();he();Gl();Tye=J("completion-floating"),kye=ge(500,50),qm=class{constructor(e){this.config=e}async resolveItem(e,t,i,r,o=!1){if(this.cancel(),it(e.onCompleteResolve))try{await this.requestWithToken(s=>Promise.resolve(e.onCompleteResolve(t,i,s)))}catch(s){if(oc(s))return;Tye.error(`Error on resolve complete item from ${e.name}:`,t,s);return}r&&this.show(b3(t,i.filetype,o))}show(e){let t=this.config.floatConfig;if(e=e.filter(i=>i.content.trim().length>0),e.length===0)this.close();else{let i=b.configurations.markdownPreference,{lines:r,codes:o,highlights:s}=zv(e,i),a={codes:o,highlights:s,highlight:t.highlight??"CocFloating",maxWidth:t.maxWidth||80,rounded:t.rounded?1:0,focusable:t.focusable===!0?1:0};t.shadow&&(a.shadow=1),t.border&&(a.border=[1,1,1,1]),t.borderhighlight&&(a.borderhighlight=t.borderhighlight),typeof t.winblend=="number"&&(a.winblend=t.winblend);let{nvim:l}=b;l.call("coc#dialog#create_pum_float",[r,a],!0),l.redrawVim()}}close(){b.nvim.call("coc#pum#close_detail",[],!0),b.nvim.redrawVim()}cancel(){this.resolveTokenSource&&(this.resolveTokenSource.cancel(),this.resolveTokenSource=void 0)}requestWithToken(e){let t=this.resolveTokenSource=new p.CancellationTokenSource;return new Promise((i,r)=>{let o=!1,s=u=>{o||(o=!0,l.dispose(),clearTimeout(a),this.resolveTokenSource===t&&(this.resolveTokenSource=void 0),u?r(u):i())},a=setTimeout(()=>{t.cancel()},kye),l=t.token.onCancellationRequested(()=>{s(new Ct)});e(t.token).then(()=>{s()},u=>{s(u)})})}}});function dK(n,e,t,i,r,o){for(let s of kv(e,t,2,o))n.push({hlGroup:"CocPumSearch",lnum:r,colStart:i+s[0],colEnd:i+s[1]})}function Pye(n,e,t){if(e.length===0)return n;for(let i=t;i{"use strict";Ug();Se();Pc();Xe();aa();pe();he();Gl();Wm=class{constructor(e,t){this.config=e;this.mruLoader=t;this._search=""}get nvim(){return b.nvim}get search(){return this._search}reset(){this._search="",this._pumConfig=void 0}get pumConfig(){if(this._pumConfig)return this._pumConfig;let{floatConfig:e,pumFloatConfig:t,reversePumAboveCursor:i}=this.config;t||(t=e);let r={};return Ue(t.highlight)&&(r.highlight=t.highlight),Xt(t.winblend)&&(r.winblend=t.winblend),t.shadow&&(r.shadow=t.shadow),t.border&&(r.border=[1,1,1,1],r.rounded=t.rounded?1:0,r.borderhighlight=t.borderhighlight??"CocFloating"),r.reverse=i===!0,this._pumConfig=r,r}stringWidth(e,t=!1){return b.getDisplayWidth(e,t)}show(e,t,i){this._search=t;let{noselect:r,enablePreselect:o,invalidInsertCharacters:s,selection:a,virtualText:l,kindMap:u,defaultKindText:c}=this.config,d=s.map(ve=>ve.charCodeAt(0)),h=o?e.findIndex(ve=>ve.preselect):-1,g=-1,f=0,m=0,y=0,w=0,x=h==-1&&!r&&a!=="first",C=[],T=Mt(i.line,i.col);for(let ve=0;veg&&(g=H,h=ve)}Xt(Le.character)&&Le.character0&&(e[h].word.startsWith(t)||(h=-1)),!r)h=h==-1?0:h;else{if(h>0){let[ve]=e.splice(h,1);e.unshift(ve);let[Le]=C.splice(h,1);C.unshift(Le)}h=-1}let O={input:t,index:h,bufnr:i.bufnr,line:i.linenr,col:i.col,startcol:rt(i.line,T),virtualText:l,words:e.map(ve=>{let Le=ve.character,U=Math.max(1,i.position.character-Le+1),H=Pye(ve.word,d,U);return Rye(H,Le,i.line,T)})},j=this.pumConfig,q=[],K=[],X=0,z={border:!!j.border,menuWidth:m,abbrWidth:f,kindWidth:y,shortcutWidth:w};this.adjustAbbrWidth(z);let B=t.toLowerCase();for(let ve=0;veo&&(l=l.slice(0,o-1)+"."),{text:l,highlights:u}}adjustAbbrWidth(e){let{formatItems:t}=this.config,i=on(b.env.pumwidth,15),r=0;for(let o of t)o=="abbr"?r+=e.abbrWidth+1:o=="menu"&&e.menuWidth?r+=e.menuWidth+1:o=="kind"&&e.kindWidth?r+=e.kindWidth+1:o=="shortcut"&&e.shortcutWidth&&(r+=e.shortcutWidth+1);r{let x=this.fillWidth(y,w);f+=w,g+=de(x),h+=x};for(let y of u)switch(y){case"abbr":{if(!te(i.positions)){let C=S3(g,i);if(C!=-1)dK(o,i.abbr,i.positions,C,s,l);else{let P=ha(e,t,0,i.abbr,i.abbr.toLowerCase(),0);dK(o,i.abbr,P,0,s,l)}}let w=r.text,x=g;m(w,a.abbrWidth+1),r.highlights.forEach(C=>{o.push({hlGroup:C.hlGroup,lnum:s,colStart:x+C.start,colEnd:x+C.end})}),i.deprecated&&o.push({hlGroup:"CocPumDeprecated",lnum:s,colStart:x,colEnd:g-1});break}case"menu":{if(a.menuWidth>0){let w=g;m(se(i.menu),a.menuWidth+1),i.menu&&o.push({hlGroup:"CocPumMenu",lnum:s,colStart:w,colEnd:w+de(i.menu)})}break}case"kind":if(a.kindWidth>0){let{kind:w}=i,x=ER(w,c,d),C=g;m(se(x),a.kindWidth+1),x&&o.push({hlGroup:f3(w),lnum:s,colStart:C,colEnd:C+de(x)})}break;case"shortcut":if(a.shortcutWidth>0){let w=g,x=i.shortcut;m(x?`[${x}]`:"",a.shortcutWidth+1),x&&o.push({hlGroup:"CocPumShortcut",lnum:s,colStart:w,colEnd:w+de(x)+2})}break}return[f,h]}fillWidth(e,t){let i=t-this.stringWidth(e);return e+" ".repeat(Math.max(i,0))}}});var Q1,_ye,Eye,V1,Ym,gK=D(()=>{"use strict";ae();Je();kt();Re();Ce();ee();Se();Xe();ce();aa();Be();pe();We();he();uK();cK();hK();Su();Ta();Gl();Q1=J("completion"),_ye=ge(200,20),Eye=ge(10,0),V1=class{constructor(){this.disposables=[];this.complete=null;this.activeItems=[]}get nvim(){return b.nvim}init(){this.loadConfiguration(),b.onDidChangeConfiguration(this.loadConfiguration,this,this.disposables),k.onDidChangeActiveTextEditor(e=>{this.loadLocalConfig(e.document)},null,this.disposables),this._mru=new jw,this.pum=new Wm(this.staticConfig,this._mru),this.floating=new qm(this.staticConfig),this._debounced=mt(this.onCursorMovedI.bind(this),Eye),_.on("CursorMoved",()=>{this.stop(!0)},null,this.disposables),_.on("CursorMovedI",this._debounced,this,this.disposables),_.on("CursorMovedI",()=>{clearTimeout(this.triggerTimer)},null,this.disposables),_.on("CompleteStop",e=>{this.stop(!1,e)},null,this.disposables),_.on("InsertEnter",this.onInsertEnter,this,this.disposables),_.on("TextChangedI",this.onTextChangedI,this,this.disposables),_.on("TextChangedP",this.onTextChangedP,this,this.disposables),_.on("MenuPopupChanged",async e=>{if(!this.option)return;this.popupEvent=e;let t=this.complete.resolveItem(this.selectedItem);if(!t||!e.move&&this.complete.isCompleting)return;let i=this.selectedItem.detailRendered,r=this.config.enableFloat;await this.floating.resolveItem(t.source,t.item,this.option,r,i)},null,this.disposables),this.nvim.call("coc#ui#check_pum_keymappings",[this.config.autoTrigger],!0),ie.registerCommand("editor.action.triggerSuggest",async e=>{await this.startCompletion({source:e})},this,!0)}get mru(){return this._mru}onCursorMovedI(e,t,i){if(i||!this.option||e!==this.option.bufnr)return;let{linenr:r,colnr:o,col:s}=this.option;if(r===t[0]){if(t[1]==o&&t[1]===de(se(this.pretext))+1)return;let a=this.document.getline(t[0]-1);if(a.match(/^\s*/)[0]!==this.option.line.match(/^\s*/)[0])return;let l=Mt(a,t[1]-1),u=Mt(a,s);if(u{if(clearTimeout(this.triggerTimer),r.isEmpty){this.stop(!1);return}this.inserted||await this.filterResults()}),await r.doComplete()&&this.stop(!1)}async onTextChangedP(e,t){!t.insertChar&&this.complete&&this.complete.cancel(),this.pretext=t.pre}async onTextChangedI(e,t){let i=b.getDocument(e);if(!i||!i.attached)return;let{option:r}=this,o=this.staticConfig.filterOnBackspace;if(r!=null){if(!t.insertChar){let a=zt(r.line,0,r.col);if(this.selectedItem){let{word:l,startcol:u}=this.popupEvent;if(zt(r.line,0,u)+l==t.pre){this.pretext=t.pre;return}}else if(a+this.pum.search==t.pre)return}if(t.pre.match(/^\s*/)[0]!==r.line.match(/^\s*/)[0]){await this.triggerCompletion(i,t);return}(x3(e,t,r)||o===!1&&t.pre.length0){await this.triggerCompletion(i,t,a);return}}if(!this.complete){await this.triggerCompletion(i,t);return}if(this.complete.isEmpty){this.triggerTimer=setTimeout(async()=>{await this.triggerCompletion(i,t)},_ye);return}await this.filterResults(t)}getTriggerSources(e,t){let i=e.getVar("disabled_sources",[]);return this.config.autoTrigger==="none"?[]:_i.getTriggerSources(t,e.filetype,e.uri,i)}async triggerCompletion(e,t,i){let{minTriggerInputLength:r,autoTrigger:o}=this.config,{pre:s}=t;if(o==="none"||!i&&!this.shouldTrigger(e,s))return!1;let a=this.getCompleteOption(e,t);return i==null&&a.input.length0){await this.triggerCompletion(a,e,l);return}}if(s.length==0){let l=o.slice(-1);(!t.isCompleting||l.length===0||!a.chars.isKeywordChar(l))&&this.stop(!0);return}this.activeItems=s,this.pum.show(s,o,this.option)}cancel(){this.complete!=null&&(this.complete.dispose(),this.complete=null),this.triggerTimer!=null&&(clearTimeout(this.triggerTimer),this.triggerTimer=null),this.pretext=void 0,this.activeItems=[],this.popupEvent=void 0}dispose(){Y(this.disposables)}},Ym=new V1});function eI(n,e){let t=[];for(let i=e.start.line;i<=e.end.line;i++){let r=n.getline(i)||"",o=i==e.start.line?e.start.character:0,s=i==e.end.line?e.end.character:r.length;o!=s&&t.push(M.create(i,o,i,s))}return t}function pK(n,e){let{start:t,end:i}=fw(e),r=t.character{"use strict";ae();Be();Pr()});var Pu,iI=D(()=>{"use strict";ae();Pt();Pr();Um();Pu=class{constructor(e,t,i){this.start=V.create(e,t),this._text=i,this.end=sn(this.start,this._text)}get position(){return this.start}get line(){return this.start.line}get text(){return this._text}get range(){return M.create(this.start,this.end)}get textEdit(){return{range:this.range,newText:this.text}}applyChange(e){tI(e)?this.applySurrondChange(e):this.applyTextChange(e)}applySurrondChange(e){let{prepend:t,append:i}=e,r=this._text.length,o=this._text.substring(t[0],r-i[0]);this._text=`${t[1]}${o}${i[1]}`}applyTextChange(e){let{text:t}=this,{offset:i,remove:r,fromEnd:o,insert:s}=e;o&&(i=-i);let a=t.slice(0,o&&i==0?t.length:i),l=t.slice(a.length);r&&(l=l.slice(r)),this._text=`${a}${s||""}${l}`}move(e){if(e!=0){let{line:t,character:i}=this.start;this.start=V.create(t,i+e)}this.end=sn(this.start,this._text)}adjustFromEdit(e){let t=mw(this.start,e);if(t.line||t.character){let{line:i,character:r}=this.start;this.start=V.create(i+t.line,r+t.character),this.end=sn(this.start,this._text)}return t.character}isBefore(e){let{position:t}=e,{line:i,character:r}=this.start;return t.line==i&&t.character>r}}});function Iye(n,e){return!(n.length!=2||n[0].offset!=0||n[1].offset+(n[1].remove?n[1].remove.length:0)!==e)}var $m,Xm,fK=D(()=>{"use strict";sp();ae();Ce();ee();ce();Pt();$();Pr();We();he();iI();Um();$m=J("cursors-session"),Xm=class{constructor(e,t,i){this.nvim=e;this.doc=t;this.config=i;this._onDidCancel=new p.Emitter;this._onDidUpdate=new p.Emitter;this.onDidCancel=this._onDidCancel.event;this.onDidUpdate=this._onDidUpdate.event;this.disposables=[];this.ranges=[];this.activated=!0;this.changing=!1;let{bufnr:r}=t;t.buffer.setVar("coc_cursors_activated",1,!0);let{cancelKey:o,nextKey:s,previousKey:a}=this.config;this.disposables.push(b.registerLocalKeymap(r,"n",o,()=>{this.cancel()})),this.disposables.push(b.registerLocalKeymap(r,"n",s,async()=>{let l=this.ranges.map(d=>d.range),u=await k.getCursorPosition();for(let d of l)if(ze(d.start,u)>0){await k.moveTo(d.start);return}let c=this.config.wrapscan;l.length&&c&&await k.moveTo(l[0].start)})),this.disposables.push(b.registerLocalKeymap(r,"n",a,async()=>{let l=this.ranges.map(d=>d.range),u=await k.getCursorPosition();for(let d=l.length-1;d>=0;d--){let h=l[d];if(ze(h.end,u)<0){await k.moveTo(h.start);return}}let c=this.config.wrapscan;l.length&&c&&await k.moveTo(l[l.length-1].start)})),this.doc.onDocumentChange(async l=>{await this.onChange(l),this.activated&&!this.changing&&this._onDidUpdate.fire()},this,this.disposables)}addRange(e){let{ranges:t}=this,i=t.findIndex(r=>Jl(r.range,e));i!==-1?t.splice(i,1):(this.createRange(e),t.sort((r,o)=>ze(r.range.start,o.range.start))),this.ranges.length==0?this.cancel():this.doHighlights()}addRanges(e){this.doc._forceSync(),this.ranges=this.ranges.filter(t=>!e.some(i=>Wc(i,t.range)));for(let t of e)this.createRange(t);return this.ranges.sort((t,i)=>ze(t.range.start,i.range.start)),this.doHighlights(),!0}createRange(e){let{textDocument:t}=this.doc,{line:i,character:r}=e.start,o=t.getText(e);this.ranges.push(new Pu(i,r,o))}async onChange(e){if(!this.activated||this.changing)return;if(e.contentChanges.length===0){this.doHighlights();return}let t=e.contentChanges[0],{text:i,range:r}=t,o=this.ranges.filter(s=>!(!Jl(r,s.range)||pw(r,s.range)&&(i.includes(` +`)||!Kt(r))));if(Kt(r)&&o.length>0&&(o=o.slice(0,1)),o.length==0)$m.debug("no affected ranges"),this.ranges.forEach(s=>{s.adjustFromEdit({range:r,newText:i})}),this.doHighlights();else if(o.length==1&&ri(r,o[0].range)){if($m.debug("affected single range"),i.includes(` +`)){this.cancel();return}await this.applySingleEdit(o[0],{range:r,newText:i})}else if(!i.length||!this.validChange(r,i)){$m.debug("filter affected ranges.");let s=this.ranges.filter(a=>!o.includes(a));s.length>0?(this.ranges=s,s.forEach(a=>{a.adjustFromEdit({range:r,newText:i})}),this.doHighlights()):this.cancel()}else{$m.debug("Check undo & redo");let s=this.ranges[0],a=this.ranges[this.ranges.length-1],l=e.originalLines.slice(s.line,a.line+1),u=this.doc.textDocument.lines.slice(s.line,a.line+1);this.applyComposedEdit(l,u)}}validChange(e,t){if(xa(Ye.replace(e,t))!=0||!ri(e,this.range))return!1;let i=this.ranges[0],r=this.ranges[this.ranges.length-1];return!(e.start.line!=i.position.line||e.end.line!=r.position.line)}get range(){let e=this.ranges[0],t=this.ranges[this.ranges.length-1];return M.create(e.position,t.range.end)}doHighlights(){let{nvim:e,ranges:t,doc:i}=this,r=i.buffer,o=[];t.forEach(s=>{i.addHighlights(o,"CocCursorRange",s.range,{combine:!1,start_incl:!0,end_incl:!0})}),o.sort((s,a)=>s.lnum!=a.lnum?s.lnum-a.lnum:s.colStart!=a.colStart?s.colStart-a.colStart:0),r.updateHighlights("cursors",o,{priority:4096}),e.redrawVim()}get currentRanges(){return this.ranges.map(e=>e.range)}cancel(){if(!this.activated)return;$m.debug("cursors cancel");let e=this.doc.buffer;this.activated=!1,this.ranges=[],e.clearNamespace("cursors"),e.setVar("coc_cursors_activated",0,!0),this._onDidUpdate.fire(),this._onDidCancel.fire()}dispose(){!this.doc||(this._onDidCancel.dispose(),this._onDidUpdate.dispose(),Y(this.disposables),this.ranges=[],this.doc=null)}async applySingleEdit(e,t){let{doc:i,ranges:r}=this;r.filter(u=>u!==e&&u.position.line==e.position.line).forEach(u=>u.adjustFromEdit(t));let s=_S(e,t.range,t.newText),a=Zm(s);r.forEach(u=>u.applyChange(s));let l=r.filter(u=>u!==e).map(u=>u.textEdit);if(this.changing=!0,await i.applyEdits(l,!0,!0),this.changing=!1,a!=0)for(let u of r){let c=Jm(u,this.ranges,e);u.move(c*a)}this.doHighlights()}applyComposedEdit(e,t){let i=bi(e[0],t[0]),r=this.ranges[0],o=r.position.character,s=r.position.line,a=r.text.length,l=i[0];if(o>0&&(l[0]!=bi.EQUAL||!l[1].startsWith(e[0].slice(0,o))))return this.cancel(),!1;let u=0,c=!1,d=[];for(let w=0;w0&&(C=C.slice(o)),x==bi.EQUAL){if(u+=C.length,u>a)break}else if(x==bi.DELETE){let P=u;if(u+=C.length,u>a){c=!0;break}d.push({offset:P,remove:C})}else{let P=i[w-1];P&&P[0]==bi.DELETE?d[d.length-1].add=C:d.push({offset:u,add:C})}}if(c||!d.length)return this.cancel(),!1;let h=oo.create("file:///1","",0,e.join(` +`)),g;if(d.length==1)g={offset:d[0].offset,remove:d[0].remove?d[0].remove.length:0,insert:d[0].add??""};else if(Iye(d,a))g={prepend:[d[0].remove?d[0].remove.length:0,d[0].add??""],append:[d[1].remove?d[1].remove.length:0,d[1].add??""]};else{let w=r.text,x="",C="",P=d[0].offset;for(let T of d){if(T.offset>P+x.length){let O=w.slice(P+x.length,T.offset);x+=O,C+=O}T.add&&(C+=T.add),T.remove&&(x+=T.remove)}g={offset:P,remove:x.length,insert:C}}let f=this.ranges.map(w=>{let x=w.position.line-s,{start:C,end:P}=w.range,T=M.create(x,C.character,x,P.character);return w.applyChange(g),Ye.replace(T,w.text)});if(oo.applyEdits(h,f)!==t.join(` +`))return this.cancel(),!1;let y=Zm(g);if(y!=0)for(let w of this.ranges){let x=Jm(w,this.ranges);w.move(x*y)}return this.doHighlights(),!0}}});var Gm,mK=D(()=>{"use strict";ae();We();he();kt();fK();Um();Gm=class{constructor(e){this.nvim=e;this.sessionsMap=new Map;this.disposables=[];this.loadConfiguration(),b.onDidChangeConfiguration(this.loadConfiguration,this,this.disposables),b.onDidCloseTextDocument(t=>{let i=this.getSession(t.bufnr);!i||(this.sessionsMap.delete(t.bufnr),i.dispose())},null,this.disposables),this.disposables.push(ie.registerCommand("editor.action.addRanges",async t=>{await this.addRanges(t)},null,!0))}loadConfiguration(e){if(!e||e.affectsConfiguration("cursors")){let t=b.initialConfiguration;this.config=t.get("cursors")}}cancel(e){let t=b.getDocument(e);if(!t)return;let i=this.getSession(t.bufnr);i&&i.cancel()}getSession(e){return this.sessionsMap.get(e)}async isActivated(){let e=await this.nvim.call("bufnr",["%"]);return this.sessionsMap.get(e)!=null}async select(e,t,i){let r=b.getAttachedDocument(e),{nvim:o}=this,s=this.createSession(r),a;if(t=="operator"){let l=await o.eval(`[getpos("'["),getpos("']")]`);if(i=="char"){let u=r.getPosition(l[0][1],l[0][2]),c=r.getPosition(l[1][1],l[1][2]+1),d=eI(r,M.create(u,c));s.addRanges(d)}else{let u=[];for(let c=l[0][1]-1;c<=l[1][1]-1;c++){let d=r.getline(c);u.push(M.create(c,0,c,d.length))}s.addRanges(u)}}else if(t=="word"){let l=await k.getCursorPosition();if(a=r.getWordRangeAtPosition(l),!a){let u=r.getline(l.line);l.character==u.length?a=M.create(l.line,Math.max(0,u.length-1),l.line,u.length):a=M.create(l.line,l.character,l.line,l.character+1)}s.addRange(a),await o.command(`silent! call repeat#set("\\(coc-cursors-${t})", -1)`)}else if(t=="position"){let l=await k.getCursorPosition(),u=r.getline(l.line);l.character>=u.length?a=M.create(l.line,u.length-1,l.line,u.length):a=M.create(l.line,l.character,l.line,l.character+1),s.addRange(a),await o.command(`silent! call repeat#set("\\(coc-cursors-${t})", -1)`)}else if(t=="range"){await o.call("eval",'feedkeys("\\", "in")');let l=await k.getSelectedRange(i);if(!l)return;let u=i==""?pK(r,l):eI(r,l);for(let c of u)s.addRange(c)}else throw new Error(`select kind "${t}" not supported`)}createSession(e){let{bufnr:t}=e,i=this.getSession(t);return i||(i=new Xm(this.nvim,e,this.config),this.sessionsMap.set(t,i),i.onDidCancel(()=>{i.dispose(),this.sessionsMap.delete(t)}),i)}async addRanges(e){let{nvim:t}=this,i=await t.call("bufnr",["%"]),r=b.getAttachedDocument(i);return this.createSession(r).addRanges(e)}reset(){for(let e of this.sessionsMap.values())e.cancel();this.sessionsMap.clear()}}});function bK(n,e,t){!Array.isArray(e)||t&&t.isCancellationRequested||(e.forEach(i=>i.parent=n),n.children=e)}var nI,Xa,rI=D(()=>{"use strict";ae();Je();kt();ce();$();he();Ap();nI=class{constructor(e,t,i,r,o,s,a){this.meta=e;this.winid=t;this.config=i;this.commandId=r;this.rootItems=o;this.getIcon=s;this.resolveChildren=a;this._onDidChangeTreeData=new p.Emitter;this.onDidChangeTreeData=this._onDidChangeTreeData.event;this.actions=[];this.addAction("Open in new tab",async l=>{await ie.executeCommand(this.commandId,t,l,"tabe")}),this.addAction("Dismiss",async l=>{if(l.parent==null){let u=this.rootItems.filter(c=>c!==l);this.reset(u)}else{let u=l.parent,c=u.children.findIndex(d=>d===l);u.children.splice(c,1),this._onDidChangeTreeData.fire(u)}})}cancel(){this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=void 0)}reset(e){this.rootItems=e,this._onDidChangeTreeData.fire(void 0)}addAction(e,t){this.actions.push({title:e,handler:t})}async getChildren(e){this.cancel(),this.tokenSource=new p.CancellationTokenSource;let{token:t}=this.tokenSource;if(!e){for(let r of this.rootItems){let o=await this.resolveChildren(r,this.meta,t);bK(r,o,t)}return this.rootItems}if(e.children)return e.children;let i=await this.resolveChildren(e,this.meta,t);return this.tokenSource=void 0,bK(e,i,t),i}getTreeItem(e){var i;let t=new so(e.name,e.children?2:1);return this.config.enableTooltip&&(t.tooltip=R.relative(b.cwd,A.parse(e.uri).fsPath)),t.description=e.detail,t.deprecated=(i=e.tags)==null?void 0:i.includes(Ui.Deprecated),t.icon=this.getIcon(e.kind),t.command={command:this.commandId,title:"open location",arguments:[this.winid,e,this.config.openCommand]},t}resolveActions(){return this.actions}dispose(){this.cancel(),b.nvim.createWindow(this.winid).clearMatchGroup(nI.rangesHighlight)}},Xa=nI;Xa.rangesHighlight="CocSelectedRange"});function yK(n){return ni(n,["children","parent","ranges","sourceUri"])}function vK(n){return!!(n&&typeof n.name=="string"&&n.kind&&M.is(n.range))}function wK(n){return`${n.toUpperCase()} CALLS`}var zm,ES,Wd,xK=D(()=>{"use strict";ae();kt();Re();Te();rI();Np();ee();Se();Tr();$();We();he();zm="CocSelectedRange",ES=class{constructor(e,t){this.nvim=e;this.handler=t;this.disposables=[];this.highlightWinids=new Set;this.loadConfiguration(),b.onDidChangeConfiguration(this.loadConfiguration,this,this.disposables),this.disposables.push(ie.registerCommand(ES.commandId,async(i,r,o)=>{let{nvim:s}=this;await s.call("win_gotoid",[i]),await b.jumpTo(r.uri,r.selectionRange.start,o);let a=await s.window;if(a.clearMatchGroup(zm),a.highlightRanges(zm,[r.selectionRange],10,!0),!te(r.ranges)){if(r.sourceUri){let l=b.getDocument(r.sourceUri);if(!l)return;let u=await s.call("coc#compat#buf_win_id",[l.bufnr]);if(u==-1)return;u!=a.id&&(a=s.createWindow(u),a.clearMatchGroup(zm))}a.highlightRanges(zm,r.ranges,100,!0),this.highlightWinids.add(a.id)}},null,!0)),_.on("BufWinEnter",(i,r)=>{this.highlightWinids.has(r)&&(this.highlightWinids.delete(r),e.createWindow(r).clearMatchGroup(zm))},null,this.disposables),ie.register({id:"document.showIncomingCalls",execute:async()=>{await this.showCallHierarchyTree("incoming")}},!1,"show incoming calls in tree view."),ie.register({id:"document.showOutgoingCalls",execute:async()=>{await this.showCallHierarchyTree("outgoing")}},!1,"show outgoing calls in tree view.")}loadConfiguration(e){if(!e||e.affectsConfiguration("callHierarchy")){let t=b.getConfiguration("callHierarchy",null);this.config={splitCommand:t.get("splitCommand"),openCommand:t.get("openCommand"),enableTooltip:t.get("enableTooltip")}}}createProvider(e,t,i,r){let o=new Xa(r,i,this.config,ES.commandId,e,s=>this.handler.getIcon(s),(s,a,l)=>this.getChildren(t,s,a,l));for(let s of["incoming","outgoing"]){let a=s==="incoming"?"Show Incoming Calls":"Show Outgoing Calls";o.addAction(a,l=>{o.meta=s;let u=[yK(l)];o.reset(u)})}return o}async getChildren(e,t,i,r){let o=[],s=yK(t);if(i=="incoming"){let a=await I.provideIncomingCalls(e,s,r);a&&(o=a.map(l=>Object.assign(l.from,{ranges:l.fromRanges})))}else{let a=await I.provideOutgoingCalls(e,s,r);a&&(o=a.map(l=>Object.assign(l.to,{ranges:l.fromRanges,sourceUri:t.uri})))}return o}async prepare(e,t,i){this.handler.checkProvider("callHierarchy",e);let r=await I.prepareCallHierarchy(e,t,i);return vK(r)?[r]:r}async getCallHierarchyItems(e,t){let{doc:i,position:r}=await this.handler.getCurrentState(),o=new p.CancellationTokenSource;if(!e){await i.synchronize();let a=await this.prepare(i.textDocument,r,o.token);if(e=a?a[0]:void 0,!a)throw new Error("Unable to getCallHierarchyItem at current position")}let s=t=="incoming"?"provideIncomingCalls":"provideOutgoingCalls";return await I[s](i.textDocument,e,o.token)}async getIncoming(e){return await this.getCallHierarchyItems(e,"incoming")}async getOutgoing(e){return await this.getCallHierarchyItems(e,"outgoing")}async showCallHierarchyTree(e){let{doc:t,position:i,winid:r}=await this.handler.getCurrentState();if(await t.synchronize(),!I.hasProvider("callHierarchy",t.textDocument)){k.showErrorMessage("CallHierarchy provider not found for current document, it's not supported by your languageserver");return}let o=await I.prepareCallHierarchy(t.textDocument,i,p.CancellationToken.None),s=vK(o)?[o]:o;if(te(s)){k.showWarningMessage("Unable to get CallHierarchyItem at cursor position.");return}let a=this.createProvider(s,t.textDocument,r,e),l=new Eo("calls",{treeDataProvider:a});l.title=wK(e),a.onDidChangeTreeData(u=>{u||(l.title=wK(a.meta))}),l.onDidChangeVisibility(u=>{u.visible||a.dispose()}),this.disposables.push(l),await l.show(this.config.splitCommand)}dispose(){this.highlightWinids.clear(),Y(this.disposables)}},Wd=ES;Wd.commandId="callHierarchy.reveal"});function Lye(n){return n?typeof n=="string"||n[0]===Gt.QuickFix||n[0]===Gt.SourceFixAll:!1}var Km,CK=D(()=>{"use strict";ae();kt();td();Te();Se();aa();We();he();Km=class{constructor(e,t){this.nvim=e;this.handler=t;t.addDisposable(ie.registerCommand("editor.action.organizeImport",async()=>{await this.organizeImport()||k.showWarningMessage("Organize import action not found")})),ie.titles.set("editor.action.organizeImport","Run organize import code action, show warning when not exists")}async codeActionRange(e,t,i){let{doc:r}=await this.handler.getCurrentState();await r.synchronize();let o=r.getline(t-1),s=M.create(e-1,0,t-1,o.length),a=await this.getCodeActions(r,s,i?[i]:null);if(a=a.filter(c=>!c.disabled),!a||a.length==0){k.showWarningMessage(`No${i?" "+i:""} code action available`);return}let l=await k.showMenuPicker(a.map(c=>c.title),"Choose action"),u=a[l];u&&await this.applyCodeAction(u)}async organizeImport(){let{doc:e}=await this.handler.getCurrentState();await e.synchronize();let t=await this.getCodeActions(e,void 0,[Gt.SourceOrganizeImports]);return t&&t.length?(await this.applyCodeAction(t[0]),!0):!1}async getCodeActions(e,t,i){let r=t!==null&&(!i||i.findIndex(l=>l.startsWith(Gt.Source))==-1);t=t??M.create(0,0,e.lineCount,0);let s={diagnostics:hi.getDiagnosticsInRange(e.textDocument,t),triggerKind:ls.Invoked};te(i)||(s.only=i);let a=await this.handler.withRequestToken("code action",l=>I.getCodeActions(e.textDocument,t,s,l));return!a||a.length==0?[]:(r&&(a=a.filter(l=>!l.kind||!l.kind.startsWith(Gt.Source))),a.sort((l,u)=>l.disabled&&!u.disabled?1:u.disabled&&!l.disabled?-1:l.isPreferred!=u.isPreferred?Pk(u.isPreferred)-Pk(l.isPreferred):0),a)}get floatActions(){return b.initialConfiguration.get("coc.preferences.floatActions",!0)}async doCodeAction(e,t,i=!1){let{doc:r}=await this.handler.getCurrentState(),o;e&&(o=await k.getSelectedRange(e)),await r.synchronize();let s=await this.getCodeActions(r,o,Array.isArray(t)?t:null);if(typeof t=="string"?s=s.filter(u=>u.title==t||u.command&&u.command.title==t):Array.isArray(t)&&(s=s.filter(u=>t.some(c=>u.kind&&u.kind.startsWith(c)))),(!this.floatActions||!i)&&(s=s.filter(u=>!u.disabled)),!s||s.length==0){k.showWarningMessage(`No${t?" "+t:""} code action available`);return}if(s.length==1&&!s[0].disabled&&Lye(t)){await this.applyCodeAction(s[0]);return}let a=this.floatActions?await k.showMenuPicker(s.map(u=>({text:u.title,disabled:u.disabled})),"Choose action"):await k.showQuickpick(s.map(u=>u.title)),l=s[a];l&&await this.applyCodeAction(l)}async getCurrentCodeActions(e,t){let{doc:i}=await this.handler.getCurrentState(),r;return e&&(r=await k.getSelectedRange(e)),(await this.getCodeActions(i,r,t)).filter(s=>!s.disabled)}async doQuickfix(){let e=await this.getCurrentCodeActions("currline",[Gt.QuickFix]);if(!e||e.length==0){k.showWarningMessage("No quickfix action available");return}await this.applyCodeAction(e[0]),this.nvim.command('silent! call repeat#set("\\(coc-fix-current)", -1)',!0)}async applyCodeAction(e){if(e.disabled)throw new Error(`Action "${e.title}" is disabled: ${e.disabled.reason}`);let t=await this.handler.withRequestToken("resolve codeAction",o=>I.resolveCodeAction(e,o)),{edit:i,command:r}=t;i&&await b.applyEdit(i),r&&await ie.execute(r)}}});function Yd(n){Fye.error("Error on handler: ",xr(n))}function oI(n){return{content:typeof n=="string"?n:n.value,filetype:Ny(n)?"markdown":"txt"}}var Fye,IS=D(()=>{"use strict";Ce();Xe();pe();Fye=J("handler-util")});function jye(n){return n=="top"?"above":n=="eol"?"after":n==="right_align"?"right":"above"}function Oye(n,e){if(!(e!=null&&e.length))return[];let t=[];for(let i of e){let{range:r,command:o}=i;!Lh(o)||n==r.start.line&&t.push(o)}return t}var $et,Zd,SK,sI,Mye,Qm,DK=D(()=>{"use strict";kt();Te();Ce();ee();Se();Xe();ce();$();We();he();IS();$et=J("codelens-buffer"),SK=ge(200,20),sI="CocCodeLens",Mye="Normal",Qm=class{constructor(e,t){this.nvim=e;this.document=t;this.display=!0;this.resolveCodeLens=mt(()=>{this._resolveCodeLenses().catch(Yd)},SK),this.debounceFetch=mt(()=>{this.fetchCodeLenses().catch(Yd)},SK),this.hasProvider&&this.debounceFetch()}get config(){return this._config?this._config:(this.loadConfiguration(),this._config)}loadConfiguration(){let e=b.getConfiguration("codeLens",this.document);this._config={enabled:e.get("enable",!1),position:e.get("position","top"),separator:e.get("separator",""),subseparator:e.get("subseparator"," ")}}async toggleDisplay(){this.display?(this.display=!1,this.clear()):(this.display=!0,this.resolveCodeLens.clear(),await this._resolveCodeLenses())}get bufnr(){return this.document.bufnr}onChange(e){e.contentChanges.length===0&&this.codeLenses!=null?(this.resolveCodeLens.clear(),this._resolveCodeLenses().catch(Yd)):(this.cancel(),this.debounceFetch())}get currentCodeLens(){var e;return(e=this.codeLenses)==null?void 0:e.codeLenses}get hasProvider(){return I.hasProvider("codeLens",this.document)}async forceFetch(){!this.config.enabled||!this.hasProvider||(await this.document.synchronize(),this.cancel(),await this.fetchCodeLenses())}async fetchCodeLenses(){var t;if(!this.hasProvider||!this.config.enabled)return;if(!(((t=this.codeLenses)==null?void 0:t.version)==this.document.version)){let i=this.codeLenses==null,{textDocument:r}=this.document,o=r.version;this.cancelFetch();let a=(this.tokenSource=new p.CancellationTokenSource).token;Zd||(Zd=await this.nvim.createNamespace("coc-codelens"));let l=await I.getCodeLens(r,a);if(a.isCancellationRequested)return;if(l=ye(l,[]),l=l.filter(u=>u!=null),te(l)){this.clear();return}this.codeLenses={version:o,codeLenses:l},i&&this.setVirtualText(l)}this.resolveCodeLens.clear(),await this._resolveCodeLenses()}async _resolveCodeLenses(){if(!this.codeLenses||this.isChanged)return;let{codeLenses:e}=this.codeLenses,[t,i,r,o]=await this.nvim.eval("[bufnr('%'),line('w0'),line('w$'),line('$')]");if(!(this.isChanged||t!=this.bufnr)){if(this.cancel(),e=e.filter(s=>{let a=s.range.start.line+1;return a>=i&&a<=r}),e.length){let a=(this.resolveTokenSource=new p.CancellationTokenSource).token;if(await Promise.all(e.map(l=>Lh(l.command)?Promise.resolve():(l.command=void 0,I.resolveCodeLens(l,a)))),this.resolveTokenSource=void 0,a.isCancellationRequested||this.isChanged)return}r==o&&(r=-1),this.nvim.pauseNotification(),this.clear(i-1,r),this.setVirtualText(e),this.nvim.resumeNotification(!0,!0)}}get isChanged(){if(!this.codeLenses||this.document.dirty)return!0;let{version:e}=this.codeLenses;return this.document.textDocument.version!==e}setVirtualText(e){let{document:t}=this;if(!Zd||!t||!e.length||!this.display)return;let i=this.config.position==="top",r=new Map;for(let o of e){let{line:s}=o.range.start,a=r.get(s)??[];a.push(o),r.set(s,a)}for(let o of r.keys()){let a=r.get(o).reduce((c,d)=>(d&&d.command&&d.command.title&&c.push(d.command.title.replace(/\s+/g," ")),c),[]),l=[],u=a.length;for(let c=0;c0&&this.config.separator&&l.unshift([`${this.config.separator} `,sI]),i&&l.length==0&&l.push([" ",Mye]),l.length>0&&t.buffer.setVirtualText(Zd,o,l,{text_align:jye(this.config.position),indent:!0})}}clear(e=0,t=-1){if(!Zd)return;this.nvim.createBuffer(this.bufnr).clearNamespace(Zd,e,t)}async doAction(e){var i;let t=Oye(e,(i=this.codeLenses)==null?void 0:i.codeLenses);if(t.length==1)await ie.execute(t[0]);else if(t.length>1){let r=await k.showMenuPicker(t.map(o=>o.title));r!=-1&&await ie.execute(t[r])}}cancelFetch(){this.debounceFetch.clear(),this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=null)}cancelResolve(){this.resolveTokenSource&&(this.resolveTokenSource.cancel(),this.resolveTokenSource=null)}cancel(){this.resolveCodeLens.clear(),this.cancelResolve(),this.cancelFetch()}abandonResult(){this.codeLenses=void 0}dispose(){this.cancel(),this.codeLenses=void 0}}});var Aye,Vm,TK=D(()=>{"use strict";ce();kt();Re();Te();ee();$();We();he();DK();Aye=ge(200,0),Vm=class{constructor(e){this.nvim=e;this.disposables=[];b.onDidChangeConfiguration(i=>{if(i.affectsConfiguration("codeLens"))for(let r of this.buffers.items)r.loadConfiguration()},this,this.disposables),this.buffers=b.registerBufferSync(i=>{if(i.buftype=="")return new Qm(e,i)}),this.disposables.push(this.buffers),_.on("CursorHold",async i=>{let r=this.buffers.getItem(i);r&&r.config.enabled&&!r.currentCodeLens&&await r.forceFetch()},null,this.disposables),_.on("CursorMoved",i=>{let r=this.buffers.getItem(i);r&&r.resolveCodeLens()},null,this.disposables);let t=mt(async i=>{for(let r of this.buffers.items)!b.match(i,r.document)||(r.abandonResult(),await r.forceFetch())},Aye);this.disposables.push(p.Disposable.create(()=>{t.clear()})),I.onDidCodeLensRefresh(t,null,this.disposables),ie.register({id:"document.toggleCodeLens",execute:()=>this.toggle(b.bufnr)},!1,"toggle codeLens display of current buffer")}async toggle(e){let t=this.buffers.getItem(e);try{b.getAttachedDocument(e),await t.toggleDisplay()}catch(i){k.showErrorMessage(i.message)}}async checkProvider(){for(let e of this.buffers.items)await e.forceFetch()}async doAction(){let[e,t]=await this.nvim.eval('[bufnr("%"),line(".")-1]'),i=this.buffers.getItem(e);i&&await i.doAction(t)}dispose(){Y(this.disposables)}}});function aI(n){return n.length==1?`0${n}`:n}function eb(n){let e=Nye(n);return`${aI(e.red.toString(16))}${aI(e.green.toString(16))}${aI(e.blue.toString(16))}`}function Nye(n){let{red:e,green:t,blue:i}=n;return{red:Math.round(e*255),green:Math.round(t*255),blue:Math.round(i*255)}}function kK(n){let e=[n.red,n.green,n.blue],t=[];for(let r=0;r{"use strict"});function Bye(n){return`BG${eb(n)}`}var PK,Hye,tb,RK=D(()=>{"use strict";Te();ee();lI();Xe();ce();Pt();$();We();he();PK="color",Hye=ge(200,10),tb=class{constructor(e,t,i,r){this.nvim=e;this.doc=t;this.config=i;this.usedColors=r;this._colors=[];this.highlight=mt(()=>{this.doHighlight()},Hye),this.hasProvider&&this.highlight()}get enable(){return _n(this._enable)?this._enable:(this._enable=b.getConfiguration("colors",this.doc).get("enable",!1),this._enable)}updateDocumentConfig(){let e=this.enabled;this._enable=b.getConfiguration("colors",this.doc).get("enable",!1),e!=this.enabled&&(e?this.clearHighlight():this.doHighlight())}toggle(){this._enable?(this._enable=!1,this.clearHighlight()):(this._enable=!0,this.doHighlight())}get hasProvider(){return I.hasProvider("documentColor",this.doc)}get enabled(){let{filetypes:e}=this.config,{filetype:t}=this.doc;return!b.env.updateHighlight||!this.hasProvider?!1:Array.isArray(e)&&(e.includes("*")||e.includes(t))?!0:this.enable}onChange(){this.cancel(),this.highlight()}get buffer(){return this.doc.buffer}get colors(){return this._colors}hasColor(){return this._colors.length>0}async doHighlight(){if(!this.enabled)return;let{nvim:e,doc:t}=this;this.tokenSource=new p.CancellationTokenSource;let{token:i}=this.tokenSource,r;if(r=await I.provideDocumentColors(t.textDocument,i),i.isCancellationRequested)return;r=r||[],r.sort((a,l)=>ze(a.range.start,l.range.start)),this._colors=r;let o=[];r.forEach(a=>{let l=Bye(a.color);t.addHighlights(o,l,a.range,{combine:!1})});let s=await k.diffHighlights(t.bufnr,PK,o);i.isCancellationRequested||!s||(e.pauseNotification(),this.defineColors(r),e.resumeNotification(!1,!0),await k.applyDiffHighlights(t.bufnr,PK,this.config.highlightPriority,s,!0))}defineColors(e){for(let t of e){let i=eb(t.color);this.usedColors.has(i)||(this.nvim.command(`hi BG${i} guibg=#${i} guifg=#${kK(t.color)?"ffffff":"000000"}`,!0),this.usedColors.add(i))}}hasColorAtPosition(e){return this.colors.some(t=>Ot(e,t.range)==0)}clearHighlight(){this.highlight.clear(),this._colors=[],this.buffer.clearNamespace("color")}cancel(){this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=null)}dispose(){this._colors=[],this.highlight.clear(),this.cancel()}}});var ib,_K=D(()=>{"use strict";kt();Re();Te();ee();lI();$();We();he();RK();ib=class{constructor(e,t){this.nvim=e;this.handler=t;this.disposables=[];this.loadConfiguration(),b.onDidChangeConfiguration(this.loadConfiguration,this,this.disposables);let i=new Set;this.highlighters=b.registerBufferSync(r=>new tb(this.nvim,r,this.config,i)),_.on("ColorScheme",()=>{i.clear();for(let r of this.highlighters.items)r.cancel(),r.doHighlight()},null,this.disposables),I.onDidColorsRefresh(r=>{for(let o of this.highlighters.items)b.match(r,o.doc)&&o.highlight()}),ie.register({id:"editor.action.pickColor",execute:async()=>{await this.pickColor()}},!1,"pick color from system color picker when possible."),ie.register({id:"editor.action.colorPresentation",execute:async()=>{await this.pickPresentation()}},!1,"change color presentation."),ie.register({id:"document.toggleColors",execute:async()=>{let r=await e.call("bufnr",["%"]),o=this.highlighters.getItem(r);b.getAttachedDocument(r),o.toggle()}},!1,"toggle colors for current buffer")}loadConfiguration(e){if(!e||e.affectsConfiguration("colors")){let t=b.initialConfiguration.get("colors");if(this.config=Object.assign(this.config??{},{filetypes:t.filetypes,highlightPriority:ye(t.highlightPriority,1e3)}),e)for(let i of this.highlighters.items)i.updateDocumentConfig()}}async pickPresentation(){let{doc:e}=await this.handler.getCurrentState();this.handler.checkProvider("documentColor",e.textDocument);let t=await this.getColorInformation(e.bufnr);if(!t)return void k.showWarningMessage("Color not found at current position");let i=new p.CancellationTokenSource,r=await I.provideColorPresentations(t,e.textDocument,i.token);if(!(r!=null&&r.length))return void k.showWarningMessage("No color presentations found");let o=await k.showMenuPicker(r.map(c=>c.label),"Choose color:");if(o==-1)return;let s=r[o],{textEdit:a,additionalTextEdits:l,label:u}=s;a||(a={range:t.range,newText:u}),await e.applyEdits([a]),l&&await e.applyEdits(l)}async pickColor(){let{doc:e}=await this.handler.getCurrentState();this.handler.checkProvider("documentColor",e.textDocument);let t=await this.getColorInformation(e.bufnr);if(!t)return void k.showWarningMessage("Color not found at current position");let{color:i}=t,r=[(i.red*255).toFixed(0),(i.green*255).toFixed(0),(i.blue*255).toFixed(0)],o=await this.nvim.call("coc#color#pick_color",[r]);if(!o)return;let s=eb({red:o[0]/65535,green:o[1]/65535,blue:o[2]/65535,alpha:1});await e.applyEdits([{range:t.range,newText:`#${s}`}])}isEnabled(e){let t=this.highlighters.getItem(e);return t!=null&&t.enabled===!0}clearHighlight(e){let t=this.highlighters.getItem(e);t&&t.clearHighlight()}hasColor(e){let t=this.highlighters.getItem(e);return t?t.hasColor():!1}hasColorAtPosition(e,t){let i=this.highlighters.getItem(e);return i?i.hasColorAtPosition(t):!1}highlightAll(){for(let e of this.highlighters.items)e.highlight()}async doHighlight(e){let t=this.highlighters.getItem(e);t&&await t.doHighlight()}async getColorInformation(e){let t=this.highlighters.getItem(e);if(!t)return null;let i=await k.getCursorPosition();for(let r of t.colors){let{range:o}=r,{start:s,end:a}=o;if(i.line==s.line&&i.character>=s.character&&i.character<=a.character)return r}return null}dispose(){this.highlighters.dispose(),Y(this.disposables)}}});function qye(n){return n&&Ue(n.id)&&Ue(n.cmd)&&n.id.length>0&&n.cmd.length>0}var nb,EK=D(()=>{"use strict";kt();fS();he();Xe();nb=class{constructor(e){this.nvim=e;for(let t of b.env.vimCommands)this.addVimCommand(t)}addVimCommand(e){if(!qye(e))return;let t=`vim.${e.id}`;ie.registerCommand(t,()=>{this.nvim.command(e.cmd,!0),this.nvim.redrawVim()}),e.title&&ie.titles.set(t,e.title)}getCommandList(){return ie.commandList.map(e=>e.id)}async repeat(){await ie.repeatCommand()}async runCommand(e,...t){if(e)return await ie.fireCommand(e,...t);await Wi.start(["commands"])}}});var rb,IK=D(()=>{"use strict";Te();rb=class{constructor(e,t){this.nvim=e;this.handler=t}async fold(e){let{doc:t,winid:i}=await this.handler.getCurrentState();this.handler.checkProvider("foldingRange",t.textDocument),await t.synchronize();let r=this.nvim.createWindow(i),o=await this.nvim.eval("&foldlevel"),s=await this.handler.withRequestToken("foldingrange",a=>I.provideFoldingRanges(t.textDocument,{},a),!0);if(!s||!s.length)return!1;e&&(s=s.filter(a=>a.kind==e)),s.sort((a,l)=>l.startLine-a.startLine),this.nvim.pauseNotification(),r.setOption("foldmethod","manual",!0),this.nvim.command("normal! zE",!0);for(let a of s){let{startLine:l,endLine:u}=a,c=`${l+1}, ${u+1}fold`;this.nvim.command(c,!0)}return r.setOption("foldenable",!0,!0),r.setOption("foldlevel",o,!0),await this.nvim.resumeNotification(!0),!0}}});var uI,ob,LK=D(()=>{"use strict";ae();kt();Re();Te();Ce();Du();Se();ee();$();pe();We();he();uI=J("handler-format"),ob=class{constructor(e,t){this.nvim=e;this.handler=t;this.setConfiguration(),t.addDisposable(b.onDidChangeConfiguration(this.setConfiguration,this)),t.addDisposable(k.onDidChangeActiveTextEditor(()=>{this.setConfiguration()})),t.addDisposable(b.onWillSaveTextDocument(i=>{if(this.shouldFormatOnSave(i.document)){let r=async()=>{if(!I.hasFormatProvider(i.document)){uI.warn(`Format provider not found for ${i.document.uri}`);return}let o=await b.getFormatOptions(i.document.uri),s=b.initialConfiguration.get("coc.preferences.formatOnSaveTimeout",500),a,l=new p.CancellationTokenSource,u=new Promise(h=>{a=setTimeout(()=>{uI.warn(`Attempt to format ${i.document.uri} on save timed out after ${s}ms`),l.cancel(),h(void 0)},s)}),c=I.provideDocumentFormattingEdits(i.document,o,l.token),d=await Promise.race([u,c]);return clearTimeout(a),Array.isArray(d)?d:void 0};i.waitUntil(r())}})),t.addDisposable(_.on("Enter",async i=>{let r=await _.race(["CursorMovedI"],100);r.args&&r.args[0]===i&&await this.handleEnter(i)})),t.addDisposable(_.on("TextInsert",async(i,r,o)=>{let s=b.getDocument(i);!_.pumvisible&&s&&s.attached&&await this.tryFormatOnType(o,s)})),t.addDisposable(ie.registerCommand("editor.action.formatDocument",async i=>{let r=i?b.getDocument(i):(await this.handler.getCurrentState()).doc;await this.documentFormat(r)})),ie.titles.set("editor.action.formatDocument","Format Document")}shouldFormatOnSave(e){let{languageId:t,uri:i}=e,r=b.getConfiguration("coc.preferences",{uri:i,languageId:t}),o=r.get("formatOnSaveFiletypes",null),s=r.get("formatOnSave",!1);return Array.isArray(o)?o.includes("*")||o.includes(t):s}setConfiguration(e){var t;if(!e||e.affectsConfiguration("coc.preferences")){let i=(t=k.activeTextEditor)==null?void 0:t.document,r=b.getConfiguration("coc.preferences",i);this.preferences={formatOnType:r.get("formatOnType",!1),formatOnTypeFiletypes:r.get("formatOnTypeFiletypes",null),bracketEnterImprove:r.get("bracketEnterImprove",!0)}}}shouldFormatOnType(e){let t=this.preferences.formatOnTypeFiletypes;return te(t)||t.includes(e)||t.includes("*")}async tryFormatOnType(e,t){if(!e||xc(e.charCodeAt(0))||!this.preferences.formatOnType||mi.getSession(t.bufnr)!=null||!this.shouldFormatOnType(t.filetype))return!1;if(!I.hasProvider("formatOnType",t.textDocument))return uI.warn(`Format on type provider not found for buffer: ${t.uri}`),!1;if(!I.canFormatOnType(e,t.textDocument))return!1;let i,r=await this.handler.withRequestToken("Format on type",async o=>(i=await k.getCursorPosition(),await t.synchronize(),await I.provideDocumentOnTypeEdits(e,t.textDocument,i,o)));return await t.applyEdits(ye(r,[]),!1,!0),!0}async formatCurrentBuffer(){let{doc:e}=await this.handler.getCurrentState();return await this.documentFormat(e)}async formatCurrentRange(e){let{doc:t}=await this.handler.getCurrentState();return await this.documentRangeFormat(t,e)}async documentFormat(e){if(await e.synchronize(),!I.hasFormatProvider(e.textDocument))throw new Error(`Format provider not found for buffer: ${e.bufnr}`);let t=await b.getFormatOptions(e.uri),i=await this.handler.withRequestToken("format",r=>I.provideDocumentFormattingEdits(e.textDocument,t,r));return i&&i.length>0?(await e.applyEdits(i,!1,!0),!0):!1}async handleEnter(e){let{nvim:t}=this,{bracketEnterImprove:i}=this.preferences,r=b.getDocument(e);if(!(!r||!r.attached)&&(await this.tryFormatOnType(` +`,r),i)){let o=await t.call("line",".")-1;await r._fetchContent(!1);let s=r.getline(o-1),a=r.getline(o),l=s[s.length-1];if(l&&ph.has(l)){let u=a.trim()[0];if(u&&ph.get(l)==u){let c=[],d=V.create(o-1,s.length);if(r.filetype=="vim"){let h=await b.getFormatOptions(r.uri),g=h.insertSpaces?" ".repeat(h.tabSize):" ",f=a.match(/^\s*/)[0],m=` +`+f+g;c.push({range:M.create(o,f.length,o,f.length),newText:" \\ "}),m=m+"\\ ",c.push({range:M.create(d,d),newText:m}),await r.applyEdits(c),await k.moveTo(V.create(o,m.length-1))}else await t.eval(`feedkeys("\\O", 'in')`)}}}}async documentRangeFormat(e,t){this.handler.checkProvider("formatRange",e.textDocument),await e.synchronize();let i;if(t){if(i=await k.getSelectedRange(t),!i)return-1}else{let[s,a,l]=await this.nvim.eval("[v:lnum,v:count,mode()]");if(a==0||l=="i"||l=="R")return-1;i=M.create(s-1,0,s-1+a,0)}let r=await b.getFormatOptions(e.uri),o=await this.handler.withRequestToken("Format range",s=>I.provideDocumentRangeFormattingEdits(e.textDocument,i,r,s));return te(o)?-1:(await e.applyEdits(o,!1,!0),0)}}});var sb,FK=D(()=>{"use strict";ae();kt();Re();Te();ee();Pt();$();We();he();sb=class{constructor(e,t){this.nvim=e;this.handler=t;this.disposables=[];this.highlights=new Map;_.on(["CursorMoved","CursorMovedI"],()=>{this.cancel(),this.clearHighlights()},null,this.disposables),this.loadConfiguration(),b.onDidChangeConfiguration(this.loadConfiguration,this,this.disposables),k.onDidChangeActiveTextEditor(()=>{this.loadConfiguration()},null,this.disposables),ie.register({id:"document.jumpToNextSymbol",execute:async()=>{await this.jumpSymbol("next")}},!1,"Jump to next symbol highlight position."),ie.register({id:"document.jumpToPrevSymbol",execute:async()=>{await this.jumpSymbol("previous")}},!1,"Jump to previous symbol highlight position.")}loadConfiguration(e){let t=b.getConfiguration("documentHighlight",this.handler.uri);(!e||e.affectsConfiguration("documentHighlight"))&&(this.config=Object.assign(this.config||{},{priority:t.get("priority",-1),timeout:t.get("timeout",300)}))}isEnabled(e,t){let i=b.getDocument(e);return!(!i||!i.attached||t||!I.hasProvider("documentHighlight",i.textDocument))}clearHighlights(){if(this.highlights.size!=0){for(let e of this.highlights.keys())this.nvim.createWindow(e).clearMatchGroup("^CocHighlight");this.highlights.clear()}}async highlight(){let{nvim:e}=this;this.cancel();let[t,i,r,o]=await e.eval(`[bufnr("%"),win_getid(),coc#cursor#position(),get(b:,'coc_cursors_activated',0)]`);if(!this.isEnabled(t,o))return;let s=b.getDocument(t),a=await this.getHighlights(s,V.create(r[0],r[1]));if(!a)return;let l={};for(let c of a){if(!M.is(c.range))continue;let d=c.kind==Vs.Text?"CocHighlightText":c.kind==Vs.Read?"CocHighlightRead":"CocHighlightWrite";l[d]=l[d]||[],l[d].push(c.range)}let u=e.createWindow(i);e.pauseNotification(),u.clearMatchGroup("^CocHighlight");for(let c of Object.keys(l))u.highlightRanges(c,l[c],this.config.priority,!0);e.resumeNotification(!0,!0),this.highlights.set(i,a)}async jumpSymbol(e){let t=await this.getSymbolsRanges();if(!t)return;let i=await k.getCursorPosition();if(e=="next"){for(let r=0;r<=t.length-1;r++)if(ze(t[r].start,i)>0){await k.moveTo(t[r].start);return}await k.moveTo(t[0].start)}else{for(let r=t.length-1;r>=0;r--)if(ze(t[r].end,i)<0){await k.moveTo(t[r].start);return}await k.moveTo(t[t.length-1].start)}}async getSymbolsRanges(){let{doc:e,position:t}=await this.handler.getCurrentState();this.handler.checkProvider("documentHighlight",e.textDocument);let i=await this.getHighlights(e,t);return i?i.filter(r=>M.is(r.range)).map(r=>r.range).sort((r,o)=>wa(r,o)):null}hasHighlights(e){return this.highlights.get(e)!=null}async getHighlights(e,t){let r=e.getline(t.line)[t.character];if(!r||!e.isWord(r))return null;await e.synchronize(),this.cancel();let o=this.tokenSource=new p.CancellationTokenSource,s=this.timer=setTimeout(()=>{o.cancel()},this.config.timeout),a=await I.getDocumentHighLight(e.textDocument,t,o.token);return clearTimeout(s),o.token.isCancellationRequested?null:a}cancel(){this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource.dispose(),this.tokenSource=null)}dispose(){this.timer&&clearTimeout(this.timer),this.cancel(),this.highlights.clear(),Y(this.disposables)}}});async function Yye(n,e,t){for(let i of e){if(!(i!=null&&i.targetRange))continue;let{start:r,end:o}=i.targetRange,s=o.line-r.line>=100?r.line+100:o.character==0?o.line-1:o.line,a=await Jye(i.targetUri,r.line,s);if(a.length){let l=a[0].match(/^\s*/)[0];l&&(a=a.map(u=>u.startsWith(l)?u.substring(l.length):u)),n.push({content:a.join(` +`),filetype:t})}}}function ab(n,e,t,i=!1){let r=e.trim();!r.length||(i&&t!=="markdown"&&(r="``` "+t+` +`+r+"\n```"),n.push({content:r,filetype:t}))}function Zye(n){return n?typeof n.filetype=="string"&&typeof n.content=="string":!1}async function Jye(n,e,t){let i=b.getDocument(n);if(i)return i.getLines(e,t+1);let r=A.parse(n).fsPath;return F.existsSync(r)?await sa(r,e,t):[]}var Wye,lb,MK=D(()=>{"use strict";ae();Je();Te();ee();Se();at();Xe();ce();$();pe();We();he();Wye=ge(500,10),lb=class{constructor(e,t){this.nvim=e;this.handler=t;this.disposables=[];this.documentLines=[];this.hasProvider=!1;this.loadConfiguration(),b.onDidChangeConfiguration(this.loadConfiguration,this,this.disposables),this.hoverFactory=k.createFloatFactory({modes:["n"],autoHide:this.config.autoHide}),this.disposables.push(this.hoverFactory),k.onDidChangeActiveTextEditor(()=>{this.loadConfiguration()},null,this.disposables)}registerProvider(){if(this.hasProvider)return;this.hasProvider=!0;let{nvim:e}=this,t={onDidChange:null,provideTextDocumentContent:async()=>(e.pauseNotification(),e.command("setlocal conceallevel=2 nospell nofoldenable wrap",!0),e.command("setlocal bufhidden=wipe nobuflisted",!0),e.command("setfiletype markdown",!0),e.command(`if winnr('j') != winnr('k') | exe "normal! z${Math.min(this.documentLines.length,this.config.previewMaxHeight)}\\" | endif`,!0),await e.resumeNotification(),this.documentLines.join(` +`))};this.disposables.push(b.registerTextDocumentContentProvider("coc",t))}loadConfiguration(e){if(!e||e.affectsConfiguration("hover")){let t=b.getConfiguration("hover",this.handler.uri);this.config={floatConfig:t.get("floatConfig",{}),autoHide:t.get("autoHide",!0),target:t.get("target","float"),previewMaxHeight:t.get("previewMaxHeight",12)},this.config.target=="preview"&&this.registerProvider()}}async onHover(e){let{doc:t,position:i,winid:r}=await this.handler.getCurrentState();e=="preview"&&this.registerProvider(),this.handler.checkProvider("hover",t.textDocument),await t.synchronize();let o=await this.handler.withRequestToken("hover",a=>I.getHover(t.textDocument,i,a),!0);if(o==null||!o.length)return!1;let s=o.find(a=>M.is(a.range));if(s!=null&&s.range){let a=this.nvim.createWindow(r);a.highlightRanges("CocHoverRange",[s.range],99,!0),this.timer=setTimeout(()=>{a.clearMatchGroup("CocHoverRange"),this.nvim.redrawVim()},500)}return await this.previewHover(o,e),!0}async definitionHover(e){let{doc:t,position:i,winid:r}=await this.handler.getCurrentState();e=="preview"&&this.registerProvider(),this.handler.checkProvider("hover",t.textDocument),await t.synchronize();let o=await this.handler.withRequestToken("hover",l=>I.getHover(t.textDocument,i,l),!0);if(te(o))return!1;let s=await this.handler.withRequestToken("definitionHover",l=>I.getDefinitionLinks(t.textDocument,i,l),!1);await Yye(o,s,t.filetype);let a=o.find(l=>as.is(l)&&M.is(l.range));if(a){let l=this.nvim.createWindow(r);l.highlightRanges("CocHoverRange",[a.range],99,!0),this.timer=setTimeout(()=>{l.clearMatchGroup("CocHoverRange"),this.nvim.redrawVim()},Wye)}return await this.previewHover(o,e),!0}async previewHover(e,t){let i=[];t=t??this.config.target;let r=t==="preview";for(let s of e){if(Zye(s)){i.push(s);continue}let{contents:a}=s;if(Array.isArray(a))for(let l of a)typeof l=="string"?ab(i,l,"markdown",r):ab(i,l.value,l.language,r);else ss.is(a)?typeof a=="string"?ab(i,a,"markdown",r):ab(i,a.value,a.language,r):Mn.is(a)&&ab(i,a.value,Ny(a)?"markdown":"txt",r)}if(t=="float"){await this.hoverFactory.show(i,this.config.floatConfig);return}let o=i.reduce((s,a)=>{let l=a.content.split(/\r?\n/);return s.length>0&&s.push(""),s.push(...l),s},[]);if(t=="echo"){let s=o.join(` +`).trim();await this.nvim.call("coc#ui#echo_hover",[s])}else this.documentLines=o,await this.nvim.command("noswapfile pedit coc://document")}async getHover(e){let t=[],i,r;if(e){i=e.bufnr?b.getAttachedDocument(e.bufnr):await b.document;let a=i.getline(e.line-1),l=Mt(a,e.col-1);r=V.create(e.line-1,l)}else{let a=await this.handler.getCurrentState();i=a.doc,r=a.position}this.handler.checkProvider("hover",i.textDocument),await i.synchronize();let o=new p.CancellationTokenSource,s=await I.getHover(i.textDocument,r,o.token);for(let a of s){let{contents:l}=a;Array.isArray(l)?l.forEach(u=>{t.push(typeof u=="string"?u:u.value)}):Mn.is(l)?t.push(l.value):t.push(typeof l=="string"?l:l.value)}return t=t.filter(a=>a!=null&&a.length>0),t}dispose(){this.timer&&clearTimeout(this.timer),Y(this.disposables)}}});var Ga,cI=D(()=>{"use strict";Ga=class{constructor(){this.ranges=[]}get current(){let e=[];return this.ranges.sort((t,i)=>t[0]-i[0]),this.ranges.forEach(t=>{e.push(t[0],t[1])}),e}clear(){this.ranges=[]}add(e,t){e>t&&([e,t]=[t,e]);let{ranges:i}=this;if(i.length==0)i.push([e,t]);else{i.sort((l,u)=>l[0]-u[0]);let r,o,s=[];for(let l=0;lt||(s.push(l),r==null&&(r=Math.min(e,u[0])),o=Math.max(t,u[1]))}let a=s.length?i.filter((l,u)=>!s.includes(u)):i;this.ranges=a,r!=null&&o!=null?this.ranges.push([r,o]):this.ranges.push([e,t])}}has(e,t){return this.ranges.findIndex(r=>r[0]<=e&&r[1]>=t)!==-1}static mergeSpans(e){let t=[];for(let i of e){let r=t.findIndex(o=>!(i[1]o[1]));if(r==-1)t.push(i);else{let o=t[r];t[r]=[Math.min(i[0],o[0]),Math.max(i[1],o[1])]}}return t}}});function dI(n){switch(n){case $r.Parameter:return"CocInlayHintParameter";case $r.Type:return"CocInlayHintType";default:return"CocInlayHint"}}var Ru,Uye,$ye,ub,jK=D(()=>{"use strict";ae();Re();Te();cI();OR();ee();Ti();Pt();$();pe();he();Uye=ge(100,10),$ye=ge(500,10);ub=class{constructor(e,t){this.nvim=e;this.doc=t;this.regions=new Ga;this.currentHints=[];this._onDidRefresh=new p.Emitter;this.onDidRefresh=this._onDidRefresh.event;this.render=ry(()=>{this.renderRange()},Uye),this.hasProvider&&this.render()}get config(){return this._config?this._config:(this.loadConfiguration(),this._config)}loadConfiguration(){let e=b.getConfiguration("inlayHint",this.doc),t=this._config&&this._config.enable!=e.enable;if(this._config={enable:e.get("enable"),display:e.get("display",!0),filetypes:e.get("filetypes"),refreshOnInsertMode:e.get("refreshOnInsertMode"),enableParameter:e.get("enableParameter"),typeSeparator:e.get("typeSeparator",""),parameterSeparator:e.get("parameterSeparator",""),subSeparator:e.get("subSeparator"," ")},t){let{enable:i,display:r}=this._config;i?(this.clearCache(),this.clearVirtualText()):r&&this.renderRange()}}onInsertLeave(){this.config.refreshOnInsertMode||this.render()}onInsertEnter(){this.config.refreshOnInsertMode||this.cancel()}get current(){return this.currentHints}get enabled(){return!this.config.display||!this.configEnabled?!1:this.hasProvider}get hasProvider(){return I.hasProvider("inlayHint",this.doc)}get configEnabled(){let{filetypes:e,enable:t}=this.config;return Array.isArray(e)?e.includes("*")||e.includes(this.doc.filetype):t===!0}toggle(){if(!I.hasProvider("inlayHint",this.doc.textDocument))throw new Error("Inlay hint provider not found for current document");if(!this.configEnabled)throw new Error(`Filetype "${this.doc.filetype}" not enabled by inlayHint configuration`);this.config.display?(this.config.display=!1,this.clearCache(),this.clearVirtualText()):(this.config.display=!0,this.renderRange())}clearCache(){this.currentHints=[],this.regions.clear(),this.render.clear()}onTextChange(){this.clearCache(),this.cancel()}onChange(){this.cancel(),this.render()}cancel(){this.render.clear(),this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=null)}async requestInlayHints(e,t){try{return await I.provideInlayHints(this.doc.textDocument,e,t)}catch(i){!t.isCancellationRequested&&i instanceof Ct&&this.render($ye)}}async renderRange(){if(this.cancel(),_.insertMode&&!this.config.refreshOnInsertMode||!this.enabled)return;this.tokenSource=new p.CancellationTokenSource;let e=this.tokenSource.token,t=await this.nvim.call("coc#window#visible_range",[this.doc.bufnr]);if(!Array.isArray(t)||t[1]<=0||e.isCancellationRequested||(Ru||(Ru=await this.nvim.createNamespace("coc-inlayHint")),e.isCancellationRequested||this.regions.has(t[0],t[1])))return;let i=M.create(t[0]-1,0,t[1],0),r=await this.requestInlayHints(i,e);r==null||e.isCancellationRequested||(this.regions.add(t[0],t[1]),this.config.enableParameter||(r=r.filter(o=>o.kind!==$r.Parameter)),this.currentHints=this.currentHints.filter(o=>Ot(o.position,i)!==0),this.currentHints.push(...r),this.setVirtualText(i,r,b.env.isVim))}setVirtualText(e,t,i){let{nvim:r,doc:o}=this,s=o.buffer,{subSeparator:a,parameterSeparator:l,typeSeparator:u}=this.config,c=new Map;if(!i)for(let d of t){let{line:h}=d.position,g=c.get(h)??[];g.length>0&&g.push([a,a===" "?"Normal":dI(d.kind)]);let f=d.kind===$r.Parameter?l:u;g.push([f+cf(d),dI(d.kind)]),c.set(h,g)}if(r.pauseNotification(),s.clearNamespace(Ru,e.start.line,e.end.line+1),i)for(let d of t){let h=[],{position:g}=d,f=this.doc.getline(g.line),m=rt(f,g.character)+1;d.paddingLeft&&h.push([" ","Normal"]),h.push([cf(d),dI(d.kind)]),d.paddingRight&&h.push([" ","Normal"]),s.setVirtualText(Ru,g.line,h,{col:m})}else for(let[d,h]of c.entries())s.setExtMark(Ru,d,0,{virt_text:h,virt_text_pos:"eol",hl_mode:"combine"});r.resumeNotification(!0,!0),this._onDidRefresh.fire()}clearVirtualText(){Ru&&this.doc.buffer.clearNamespace(Ru)}dispose(){this.cancel()}}});var cb,OK=D(()=>{"use strict";kt();Re();Te();ee();$();We();he();jK();cb=class{constructor(e,t){this.disposables=[];this.buffers=b.registerBufferSync(i=>{if(!!b.env.virtualText)return new ub(e,i)}),this.disposables.push(this.buffers),b.onDidChangeConfiguration(i=>{for(let r of this.buffers.items)i.affectsConfiguration("inlayHint",r.doc)&&r.loadConfiguration()},null,this.disposables),I.onDidInlayHintRefresh(async i=>{for(let r of this.buffers.items)b.match(i,r.doc.textDocument)&&(r.clearCache(),I.hasProvider("inlayHint",r.doc.textDocument)?r.render():r.clearVirtualText())},null,this.disposables),_.on("InsertLeave",i=>{let r=this.buffers.getItem(i);r&&r.onInsertLeave()},null,this.disposables),_.on("InsertEnter",i=>{let r=this.buffers.getItem(i);r&&r.onInsertEnter()},null,this.disposables),_.on("CursorMoved",i=>{this.refresh(i)},null,this.disposables),_.on("WinScrolled",async i=>{let r=await e.call("winbufnr",[i]);r!=-1&&this.refresh(r)},null,this.disposables),ie.register({id:"document.toggleInlayHint",execute:i=>this.toggle(i??b.bufnr)},!1,"toggle codeLens display of current buffer"),t.addDisposable(p.Disposable.create(()=>{Y(this.disposables)}))}toggle(e){let t=this.getItem(e);try{b.getAttachedDocument(e),t.toggle()}catch(i){k.showErrorMessage(i.message)}}getItem(e){return this.buffers.getItem(e)}refresh(e){let t=this.buffers.getItem(e);t&&t.render()}}});var Xye,db,AK=D(()=>{"use strict";ae();iI();Um();Re();Te();ee();ce();Pt();$();pe();We();he();Xye=ge(200,10),db=class{constructor(e,t){this.nvim=e;this.changing=!1;this.checkPosition=mt(this._checkPosition,Xye),t.addDisposable(_.on("CursorMoved",(i,r)=>{this.cancel(),this.checkPosition(i,[r[0],r[1]])})),t.addDisposable(_.on("CursorMovedI",(i,r)=>{this.cancel(),this.checkPosition(i,[r[0],r[1]])})),t.addDisposable(k.onDidChangeActiveTextEditor(()=>{this.cancel(),this.cancelEdit()})),t.addDisposable(_.on("InsertCharPre",(i,r)=>{if(r!==this.bufnr)return;let o=b.getDocument(r);this.wordPattern?new RegExp(this.wordPattern).test(i)||this.cancelEdit():!o.isWord(i)&&i!=="-"&&this.cancelEdit()})),t.addDisposable(b.onDidChangeTextDocument(async i=>{await this.onChange(i)}))}cancelEdit(){var e;(e=this.window)==null||e.clearMatchGroup("^CocLinkedEditing"),this.ranges=void 0,this.window=void 0,this.bufnr=void 0}async onChange(e){if(e.bufnr!==this.bufnr||this.changing||!this.ranges)return;if(e.contentChanges.length===0){this.doHighlights();return}let t=e.contentChanges[0],{text:i,range:r}=t,o=this.ranges.filter(s=>!(!Jl(r,s.range)||pw(r,s.range)&&(i.includes(` +`)||!Kt(r))));if(o.length==1&&ri(r,o[0].range)){if(i.includes(` +`)){this.cancelEdit();return}await this.applySingleEdit(o[0],{range:r,newText:i})}else this.cancelEdit()}async applySingleEdit(e,t){let{bufnr:i,ranges:r}=this,o=b.getDocument(i);r.filter(c=>c!==e&&c.position.line==e.position.line).forEach(c=>c.adjustFromEdit(t));let a=_S(e,t.range,t.newText),l=Zm(a);r.forEach(c=>c.applyChange(a));let u=r.filter(c=>c!==e).map(c=>c.textEdit);if(this.changing=!0,await o.applyEdits(u,!0,!0),this.changing=!1,l!=0)for(let c of r){let d=Jm(c,this.ranges,e);c.move(d*l)}this.doHighlights()}doHighlights(){let{window:e,ranges:t,nvim:i}=this;e&&t&&(i.pauseNotification(),e.clearMatchGroup("^CocLinkedEditing"),e.highlightRanges("CocLinkedEditing",t.map(r=>r.range),99,!0),i.resumeNotification(!0,!0))}_checkPosition(e,t){if(_.pumvisible||!b.isAttached(e))return;let i=b.getDocument(e);if(!b.getConfiguration("coc.preferences",i).get("enableLinkedEditing",!1)||!I.hasProvider("linkedEditing",i.textDocument))return;let s=Mt(i.getline(t[0]-1),t[1]-1),a=V.create(t[0]-1,s);if(this.ranges){if(this.ranges.some(l=>Ot(a,l.range)==0))return;this.cancelEdit()}this.enable(i,a)}async enable(e,t){let i=e.textDocument,o=(this.tokenSource=new p.CancellationTokenSource).token,s=await this.nvim.window,a=await I.provideLinkedEdits(i,t,o);if(o.isCancellationRequested||!a||a.ranges.length==0)return;let l=a.ranges.map(u=>new Pu(u.start.line,u.start.character,i.getText(u)));this.wordPattern=a.wordPattern,this.bufnr=e.bufnr,this.window=s,this.ranges=l,this.doHighlights()}cancel(){this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=null)}}});function Kye(n,e){if(n.length!=e.length)return!1;for(let t=0;t{"use strict";HK=sr(OS());ae();Re();Te();ee();Se();Be();Pt();$();We();he();Gye=ge(200,10),NK="links",zye="CocLink",hb=class{constructor(e,t){this.nvim=e;this.handler=t;this.disposables=[];this.setConfiguration(),b.onDidChangeConfiguration(this.setConfiguration,this,this.disposables),_.on("CursorHold",async()=>{await this.showTooltip()},null,this.disposables),_.on(["CursorMoved","InsertEnter"],()=>{this.cancel()},null,this.disposables),this.buffers=b.registerBufferSync(i=>new gI(i)),this.disposables.push(this.buffers),I.onDidLinksRefresh(i=>{for(let r of this.buffers.items)b.match(i,r.doc)&&r.fetchLinks()},null,this.disposables)}setConfiguration(e){if((!e||e.affectsConfiguration("links"))&&(this.tooltip=b.initialConfiguration.get("links.tooltip",!1),e))for(let t of this.buffers.items)t.updateDocumentConfig()}async showTooltip(){if(!this.tooltip)return;let e=await this.getCurrentLink();if(!e||!e.target)return;let t=e.target;e.tooltip&&(t+=" "+e.tooltip);let i={content:t,filetype:"txt"};hI||(hI=k.createFloatFactory({})),await hI.show([i])}async getLinks(){let{doc:e}=await this.handler.getCurrentState(),t=this.buffers.getItem(e.bufnr);return await t.getLinks(),le(t.links)}async getCurrentLink(){let e=await this.getLinks(),t=await k.getCursorPosition();if(e&&e.length){for(let a of e)if(Ot(t,a.range)==0){if(!a.target){let l=this.tokenSource=this.tokenSource||new p.CancellationTokenSource;if(a=await I.resolveDocumentLink(a,this.tokenSource.token),this.tokenSource=void 0,!a.target||l.token.isCancellationRequested)continue}return a}}let i=await this.nvim.call("getline",["."]),r=/\w+?:\/\/[^)\]'" ]+/g,o,s;for(;(o=r.exec(i))!==null;){let a=o.index;if(a<=t.character&&a+o[0].length>=t.character){s=Tl.create(M.create(t.line,a,t.line,a+o[0].length),o[0]);break}}return s}async openCurrentLink(){let e=await this.getCurrentLink();return e?(await this.openLink(e),!0):!1}async openLink(e){if(!e.target)throw new Error("Failed to resolve link target");await b.openResource(e.target)}getBuffer(e){return this.buffers.getItem(e)}cancel(){this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=null)}dispose(){Y(this.disposables)}},gI=class{constructor(e){this.doc=e;this.links=[];this.fetchLinks=(0,HK.default)(()=>{this.getLinks()},Gye),this.hasProvider&&this.fetchLinks()}get config(){return this._config?this._config:(this.updateDocumentConfig(),this._config)}get hasProvider(){return I.hasProvider("documentLink",this.doc)}updateDocumentConfig(){let e=b.getConfiguration("links",this.doc);this._config={enable:e.get("enable",!0),highlight:e.get("highlight",!1)}}onChange(e){e.contentChanges.length==0?this.highlight():(this.cancel(),this.fetchLinks())}highlight(){if(!this.config.highlight||!this.links)return;let{links:e,doc:t}=this;if(te(e))this.clearHighlight();else{let i=[];e.forEach(r=>{t.addHighlights(i,zye,r.range)}),this.doc.buffer.updateHighlights(NK,i,{priority:2048})}}clearHighlight(){this.buffer.clearNamespace(NK)}get buffer(){return this.doc.buffer}cancel(){this.fetchLinks.clear(),this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=null)}async getLinks(){if(!this.hasProvider||!this.config.enable)return;this.cancel();let t=(this.tokenSource=new p.CancellationTokenSource).token,i=await I.getDocumentLinks(this.doc.textDocument,t);this.tokenSource=void 0,!(t.isCancellationRequested||Kye(le(this.links),le(i)))&&(this.links=le(i),this.highlight())}dispose(){this.cancel()}}});var gb,qK=D(()=>{"use strict";ae();Je();Te();Pm();Be();$();he();gb=class{constructor(e,t){this.nvim=e;this.handler=t}async request(e,t){let{doc:i,position:r}=await this.handler.getCurrentState();return this.handler.checkProvider(e,i.textDocument),await i.synchronize(),await this.handler.withRequestToken(e,o=>t(i.textDocument,r,o),!0)}async definitions(){let{doc:e,position:t}=await this.handler.getCurrentState();this.handler.checkProvider("definition",e.textDocument),await e.synchronize();let i=new p.CancellationTokenSource;return I.getDefinition(e.textDocument,t,i.token)}async declarations(){let{doc:e,position:t}=await this.handler.getCurrentState();this.handler.checkProvider("declaration",e.textDocument),await e.synchronize();let i=new p.CancellationTokenSource;return I.getDeclaration(e.textDocument,t,i.token)}async typeDefinitions(){let{doc:e,position:t}=await this.handler.getCurrentState();this.handler.checkProvider("typeDefinition",e.textDocument),await e.synchronize();let i=new p.CancellationTokenSource;return I.getTypeDefinition(e.textDocument,t,i.token)}async implementations(){let{doc:e,position:t}=await this.handler.getCurrentState();this.handler.checkProvider("implementation",e.textDocument),await e.synchronize();let i=new p.CancellationTokenSource;return I.getImplementation(e.textDocument,t,i.token)}async references(e){let{doc:t,position:i}=await this.handler.getCurrentState();this.handler.checkProvider("reference",t.textDocument),await t.synchronize();let r=new p.CancellationTokenSource;return I.getReferences(t.textDocument,{includeDeclaration:!e},i,r.token)}async gotoDefinition(e){let t=await this.request("definition",(i,r,o)=>I.getDefinition(i,r,o));return await this.handleLocations(t,e),t?t.length>0:!1}async gotoDeclaration(e){let t=await this.request("declaration",(i,r,o)=>I.getDeclaration(i,r,o));return await this.handleLocations(t,e),t?t.length>0:!1}async gotoTypeDefinition(e){let t=await this.request("typeDefinition",(i,r,o)=>I.getTypeDefinition(i,r,o));return await this.handleLocations(t,e),t?t.length>0:!1}async gotoImplementation(e){let t=await this.request("implementation",(i,r,o)=>I.getImplementation(i,r,o));return await this.handleLocations(t,e),t?t.length>0:!1}async gotoReferences(e,t=!0){let i=await this.request("reference",(r,o,s)=>I.getReferences(r,{includeDeclaration:t},o,s));return await this.handleLocations(i,e),i?i.length>0:!1}async getTagList(){let{doc:e,position:t}=await this.handler.getCurrentState(),i=await this.nvim.call("expand","");if(!i||!I.hasProvider("definition",e.textDocument))return null;let r=new p.CancellationTokenSource,o=await I.getDefinition(e.textDocument,t,r.token);return!o||!o.length?null:o.map(s=>{let a=A.parse(s.uri),l=a.scheme=="file"?a.fsPath:a.toString();return{name:i,cmd:`silent keepjumps ${s.range.start.line+1} | normal ${s.range.start.character+1}|`,filename:l}})}async findLocations(e,t,i,r=!1){let{doc:o,position:s}=await this.handler.getCurrentState();i=i||{},Object.assign(i,{textDocument:{uri:o.uri},position:s});let a=await Sn.sendRequest(e,t,i),l=this.toLocations(a);return await this.handleLocations(l,r),l.length>0}toLocations(e){let t=[];if(e&&En(e,"location")&&En(e,"children")){let i=r=>{if(!!r){if(Ze.is(r.location))t.push(r.location);else if(br.is(r.location)){let o=r.location;t.push({uri:o.targetUri,range:o.targetSelectionRange,targetRange:o.targetRange})}if(r.children&&r.children.length)for(let o of r.children)i(o)}};return i(e),t}if(Ze.is(e))t.push(e);else if(br.is(e))t.push({uri:e.targetUri,range:e.targetSelectionRange,targetRange:e.targetRange});else if(Array.isArray(e))for(let i of e)Ze.is(i)?t.push(i):i&&typeof i.targetUri=="string"&&t.push({uri:i.targetUri,range:i.targetSelectionRange,targetRange:i.targetRange});return t}async handleLocations(e,t){if(!e)return;let i=e.length;if(i!=0)if(i==1&&t!==!1){let{uri:r,range:o}=e[0];await b.jumpTo(r,o.start,t)}else await b.showLocations(e)}}});var pb,WK=D(()=>{"use strict";Be();pb=class{constructor(){this.stack=[]}add(e){let t=new Map;for(let i of e)t.set(i.lnum,i);this.stack.push(t)}checkInsert(e){if(!this.stack.length)return;let t=this.stack[this.stack.length-1],i=Array.from(t.keys()).sort((r,o)=>r-o);if(!!Fe(i,e))return this.stack.pop(),Array.from(t.values())}}});function Vye(n,e){let{start:t,end:i}=n;return M.create(t.line-e,t.character,i.line-e,i.character)}function eve(n){let{contentChanges:e,bufnr:t,textDocument:i,original:r,originalLines:o}=n,{range:s,text:a}=e[0],l=[{range:s,text:a}];if(r){let u=r.split(/\r?\n/),c=u[u.length-1];if(c.startsWith(fo)){let g=o[s.start.line].slice(0,s.start.character);if(g==c){r=g+u.slice(0,-1).join(` +`)+` +`;let{start:f,end:m}=s;l[0].range=M.create(f.line,0,m.line,0)}}let d=o[s.start.line-1],h=u.length>1?u[u.length-2]:"";if(c==""&&h.startsWith(fo)&&d==h&&s.start.character==0&&s.end.character==0){r=d+` +`+u.slice(0,-2).join(` +`)+` +`;let{start:g,end:f}=s;l[0].range=M.create(g.line-1,0,f.line-1,0)}}else if(Kt(s)&&s.start.character!=0){let u=a.split(/\r?\n/),c=u[u.length-1],d=o[s.start.line].slice(0,s.start.character);if(c.startsWith(fo)&&d==c){l[0].text=d+u.slice(0,-1).join(` +`)+` +`;let{start:h,end:g}=s;l[0].range=M.create(h.line,0,g.line,0)}}return{contentChanges:l,bufnr:t,textDocument:i,original:r,originalLines:o}}var Qye,fo,fb,YK=D(()=>{"use strict";sp();ae();Je();Ce();Sa();ee();at();Tr();fs();ce();Be();Pt();pe();Pr();We();he();WK();Qye=J("handler-refactorBuffer"),fo="\u3000",fb=class{constructor(e,t,i,r,o){this.bufnr=e;this.srcId=t;this.nvim=i;this.config=r;this.opts=o;this._disposed=!1;this._fileItems=[];this.mutex=new Oi;this.disposables=[];this.matchIds=new Set;this.changing=!1;this.changes=new pb,this.disposables.push(b.registerLocalKeymap(e,"n","",this.splitOpen.bind(this),!0)),r.showMenu&&this.disposables.push(b.registerLocalKeymap(e,"n",r.showMenu,this.showMenu.bind(this),!0)),b.onDidChangeTextDocument(this.onDocumentChange,this,this.disposables)}async showMenu(){let e=await k.showMenuPicker(["Tab open","Remove block"]);if(e==-1)return;let t=await this.searchCurrentRange();if(!!t){if(e==0){let r=(await this.nvim.eval("strpart(getline('.'), 0 ,col('.') - 1)")).length,o=this.getAbsolutePath(t.filepath);this.nvim.call("coc#util#jump",["tabe",o,[t.line,r]],!0)}if(e==1){let i=this.getDeleteRange(t);await this.document.applyEdits([Ye.del(i)])}}}get fileItems(){return this._fileItems}getFileItem(e){let t=A.parse(e).fsPath;return this._fileItems.find(i=>li(i.filepath,t))}getFileRange(e){for(let t of this._fileItems)for(let i of t.ranges)if(i.lnum==e)return Object.assign(ni(i,["highlights"]),{filepath:t.filepath});throw new Error(`File range not found at lnum: ${e}`)}onChange(e){if(this.changing)return;if(e.contentChanges.length===0){this.highlightLineNr(),this.nvim.redrawVim();return}let{nvim:t}=this;e=eve(e);let i=e.contentChanges[0],{original:r}=e;i.range.end.line>2&&t.call("setbufvar",[e.bufnr,"&modified",1],!0);let{range:o,text:s}=i;if(xa(Ye.replace(o,s))==0)return;let l=[Ye.replace(o,s)],u=[];if(!Kt(o)&&!s.includes("\u3000")){let c=o.start.line,d=[],h=r.split(/\r?\n/);for(let g=0;g1&&f.includes("\u3000")&&d.push(c+g+1)}if(d.length){let g=d.map(f=>this.getFileRange(f));for(let f of this._fileItems)f.ranges=f.ranges.filter(m=>!d.includes(m.lnum));this.changes.add(g)}}else if(Kt(o)&&s.includes("\u3000")){let c=s.split(/\r?\n/),d=[],h=o.start.line;for(let g=0;g1&&f.includes("\u3000")&&d.push(h+g+1)}if(d.length){let g=this.changes.checkInsert(d);g&&(u=g)}}else s.includes("\u3000")&&(l=this.diffChanges(r,s),l.forEach(c=>{c.range=GZ(c.range,o.start)}));this.adjustLnums(l),t.pauseNotification(),this.highlightLineNr(),t.resumeNotification(!0,!0),u.length&&u.forEach(c=>{this._fileItems.find(h=>h.filepath==c.filepath).ranges.push(c)})}diffChanges(e,t){let i=[],r=bi(e,t),o=0,s=oo.create("file:///1","",0,e);for(let a=0;a=c.start+c.lines.length)continue;if(r.end.line!l.includes(c))),this._fileItems=this._fileItems.filter(u=>u.ranges&&u.ranges.length>0),a.length&&(this.adjustLnums(a),this.changing=!0,await this.document.applyEdits(a),this.changing=!1),this.nvim.pauseNotification(),this.highlightLineNr(),this.buffer.setOption("modified",!1,!0),await this.nvim.resumeNotification(!0)}adjustLnums(e){for(let t of this._fileItems)for(let i of t.ranges){let r=i.lnum-1;i.lnum+=GP(V.create(r,0),e)}}async getFileChanges(){let e=[],t=await this.buffer.lines;t.push(fo);let i=[],r,o;for(let s=0;s1){let l=a.match(/^\u3000(.*)/);l&&(r=this.getAbsolutePath(l[1].replace(/\s+$/,"")),o=s+1,i=[])}}else i.push(a)}return e}async splitOpen(){let{nvim:e}=this,i=await e.createWindow(this.opts.fromWinid).valid,o=(await e.eval("strpart(getline('.'), 0 ,col('.') - 1)")).length,s=await this.searchCurrentRange();if(s){let a=this.getAbsolutePath(s.filepath);e.pauseNotification(),i?(e.call("win_gotoid",[this.opts.fromWinid],!0),this.nvim.call("coc#util#jump",["edit",a,[s.line,o]],!0)):this.nvim.call("coc#util#jump",["belowright vs",a,[s.line,o]],!0),e.command("normal! zz",!0),await e.resumeNotification(!0),i||(this.opts.fromWinid=await e.call("win_getid"))}}async searchCurrentRange(){let{nvim:e}=this,t=await e.eval('getline(1,line("."))'),i=t.length;for(let r=0;rVye(P,m)));let{lines:y,start:w,end:x,highlights:C}=h;y||(y=await this.getLines(c.filepath,w,x)),d.push({lines:y,lnum:g,start:w,highlights:C}),s.addLines(y)}if(d.length){let h={filepath:c.filepath,ranges:d},g=this._fileItems.find(f=>f.filepath==c.filepath);g?g.ranges.push(...h.ranges):this._fileItems.push(h)}}let{nvim:l,buffer:u}=this;if(this.changing=!0,l.pauseNotification(),s.render(u,o),this.highlightLineNr(),u.setOption("modified",!1,!0),u.setOption("undolevels",1e3,!0),o==2&&a.length){let c=a[0].start;l.call("coc#cursor#move_to",[c.line,c.character],!0)}await l.resumeNotification(!0),await i.patchChange(),this.changing=!1,await k.cursors.addRanges(a)}catch(o){this.changing=!1,Qye.error("Error on add file item:",o)}r()}findRange(e,t){let r=this.fileItems.find(o=>li(this.getAbsolutePath(o.filepath),e)).ranges.find(o=>o.lnum==t);if(!r)throw new Error(`File range not found at lnum: ${t}`);return r}async save(){let{nvim:e}=this,t=this.document,{buffer:i}=t;await t.patchChange();let r=await this.getFileChanges();if(!r)return;r.sort((a,l)=>a.lnum-l.lnum);let o=[];for(let a=0;a0&&a.ranges.forEach(c=>{c.start+=GP(V.create(c.start,0),u)})}return e.pauseNotification(),i.setOption("modified",!1,!0),this.config.saveToFile&&e.command("silent noa wa",!0),this.highlightLineNr(),await e.resumeNotification(),!0}async getLines(e,t,i){let r=A.file(e).toString(),o=b.getDocument(r);return o?o.getLines(t,i):await sa(e,t,i-1)}getAbsolutePath(e){return R.isAbsolute(e)?e:R.join(this.opts.cwd,e)}highlightLineNr(){let{fileItems:e,nvim:t,srcId:i,bufnr:r}=this,{winid:o,cwd:s}=this.opts,a={};if(i){t.call("nvim_buf_clear_namespace",[r,i,0,-1],!0);for(let l of e)for(let u of l.ranges){let c=u.start+u.lines.length,d=`${u.start+1}:${c}`;a[u.lnum]=[u.start+1,c],t.call("nvim_buf_set_virtual_text",[r,i,u.lnum-1,[[d,"LineNr"]],{}],!0)}}else{this.matchIds.size&&(t.call("coc#highlight#clear_matches",[o,Array.from(this.matchIds)],!0),this.matchIds.clear());let l=2e3;for(let u of e){let c=`${s?R.relative(s,u.filepath):u.filepath}`,d=de(c)+1;for(let h of u.ranges){let g=h.start+h.lines.length,f=`:${h.start+1}:${g}`;for(let m=0;m{"use strict";ZK=require("child_process"),JK=require("events");ae();Ce();Sa();Oc();fs();ce();We();tve=J("handler-search"),ive=["--color","ansi","--colors","path:fg:black","--colors","line:fg:green","--colors","match:fg:red","--no-messages","--heading","-n"],nve="\x1B",pI=class extends JK.EventEmitter{start(t,i,r){this.process=(0,ZK.spawn)(t,i,{cwd:r}),this.process.on("error",d=>{this.emit("error",d.message)});let o=yo.createInterface(this.process.stdout),s,a,l=[],u=[],c=!0;o.on("line",d=>{if(d.includes(nve)){let h=Qg(d);if(h.length==0)return;if(h[0].foreground=="black"){a={filepath:R.join(r,h[0].text),ranges:[]};return}if(h[0].foreground=="green"){let f=parseInt(h[0].text,10)-1,m=h[0].text.length+1;c&&(s=f,c=!1);let y="";for(let x of h){if(x.foreground=="red"){let C=f-s,P=y.length-m;u.push(M.create(C,P,C,P+x.text.length))}y+=x.text}let w=y.slice(m);l.push(w)}}else{let h=d.trim().length==0;a&&(h||d.trim()=="--")&&a.ranges.push({lines:l,highlights:u,start:s}),h&&(this.emit("item",a),a=null),l=[],u=[],c=!0}}),o.on("close",()=>{a&&(l.length&&a.ranges.push({lines:l,highlights:u,start:s}),this.emit("item",a)),l=u=a=null,this.emit("end")})}dispose(){this.process&&this.process.kill()}},mb=class{constructor(e,t="rg"){this.nvim=e;this.cmd=t}run(e,t,i){let{nvim:r,cmd:o}=this,{afterContext:s,beforeContext:a}=i.config,l=["-A",s.toString(),"-B",a.toString()].concat(ive,e),u=rve(e);u&&l.pop(),l.push("--",u?R.isAbsolute(u)?u:`./${u.replace(/^\.\//,"")}`:"./"),this.task=new pI,this.task.start(o,l,t);let c=new Oi,d=0,h=0,g=Date.now(),f=[],m=async()=>{if(f.length==0)return;let y=f.slice();f=[];let w=await c.acquire();try{await i.addFileItems(y)}catch(x){tve.error(x)}w()};return new Promise((y,w)=>{let x=setInterval(m,300);this.task.on("item",async C=>{d++,h=h+C.ranges.reduce((P,T)=>P+T.highlights.length,0),f.push(C)}),this.task.on("error",C=>{clearInterval(x),k.showErrorMessage(`Error on command "${o}": ${C}`),this.task=null,w(new Error(C))}),this.task.on("end",async()=>{clearInterval(x);try{await m(),(await c.acquire())(),this.task.removeAllListeners(),this.task=null;let P=i.buffer;if(P){if(r.pauseNotification(),d==0)P.setLines(["No match found"],{start:1,end:2,strictIndexing:!1},!0),P.addHighlight({line:1,srcId:-1,colEnd:-1,colStart:0,hlGroup:"Error"}),P.setOption("modified",!1,!0);else{let T=new Ki;T.addText("Files","MoreMsg"),T.addText(": "),T.addText(`${d} `,"Number"),T.addText("Matches","MoreMsg"),T.addText(": "),T.addText(`${h} `,"Number"),T.addText("Duration","MoreMsg"),T.addText(": "),T.addText(`${Date.now()-g}ms`,"Number"),T.render(P,1,2)}P.setOption("modified",!1,!0),r.resumeNotification(!1,!0)}}catch(C){w(C);return}y()})})}abort(){var e;(e=this.task)==null||e.dispose()}}});function $K(n,e){let{start:t,end:i}=n;return M.create(t.line-e,t.character,i.line-e,i.character)}var ove,sve,fI,bb,XK=D(()=>{"use strict";ae();Je();Re();Te();ee();at();$();Pr();he();YK();UK();ove="__coc_refactor__",sve=0,bb=class{constructor(e,t){this.nvim=e;this.handler=t;this.buffers=new Map;this.disposables=[];this._onCreate=new p.Emitter;this.onCreate=this._onCreate.event;this.setConfiguration(),b.onDidChangeConfiguration(this.setConfiguration,this,this.disposables),_.on("BufUnload",i=>{let r=this.buffers.get(i);r&&(r.dispose(),this.buffers.delete(i))},null,this.disposables),b.onDidChangeTextDocument(i=>{let r=this.buffers.get(i.bufnr);r&&r.onChange(i)},null,this.disposables)}has(e){return this.buffers.has(e)}setConfiguration(e){if(e&&!e.affectsConfiguration("refactor"))return;let t=b.getConfiguration("refactor",null);this.config=Object.assign(this.config||{},{afterContext:t.get("afterContext",3),beforeContext:t.get("beforeContext",3),openCommand:t.get("openCommand","vsplit"),saveToFile:t.get("saveToFile",!0),showMenu:t.get("showMenu","")})}async doRefactor(){let{doc:e,position:t}=await this.handler.getCurrentState();if(!I.hasProvider("rename",e.textDocument))throw new Error("Rename provider not found for current buffer");await e.synchronize();let i=await this.handler.withRequestToken("refactor",async r=>{let o=await I.prepareRename(e.textDocument,t,r);if(r.isCancellationRequested)return null;if(o===!1)throw new Error("Provider returns null on prepare, unable to rename at current position");let s=await I.provideRenameEdits(e.textDocument,t,"NewName",r);if(r.isCancellationRequested)return null;if(!s)throw new Error("Provider returns null for rename edits.");return s});i&&await this.fromWorkspaceEdit(i,e.filetype)}async search(e){let t=await this.createRefactorBuffer(),i=await this.nvim.call("getcwd",[]);await new mb(this.nvim).run(e,i,t)}async save(e){let t=this.buffers.get(e);if(t)return await t.save()}getBuffer(e){return this.buffers.get(e)}async createRefactorBuffer(e,t=!1){let{nvim:i}=this,[r,o]=await i.eval("[win_getid(),getcwd()]"),{openCommand:s}=this.config;!i.isVim&&!fI&&(fI=await this.nvim.createNamespace("coc-refactor")),i.pauseNotification(),i.command(`${s} ${ove}${sve++}`,!0),i.command("setl buftype=acwrite nobuflisted bufhidden=wipe nofen wrap conceallevel=2 concealcursor=n",!0),i.command("setl undolevels=-1 nolist nospell noswapfile foldmethod=expr foldexpr=coc#util#refactor_foldlevel(v:lnum)",!0),i.command("setl foldtext=coc#util#refactor_fold_text(v:foldstart)",!0),i.call("setline",[1,["Save current buffer to make changes",fo]],!0),i.call("matchadd",["Comment","\\%1l"],!0),i.call("matchadd",["Conceal","^\\%u3000"],!0),i.call("matchadd",["Label","^\\%u3000\\zs\\S\\+"],!0),i.command("setl nomod",!0),e&&i.command(`runtime! syntax/${e}.vim`,!0),i.call("coc#util#do_autocmd",["CocRefactorOpen"],!0),await i.resumeNotification();let[a,l]=await i.eval('[bufnr("%"),win_getid()]'),u={fromWinid:r,winid:l,cwd:o};await b.document;let c=new fb(a,t?void 0:fI,this.nvim,this.config,u);return this.buffers.set(a,c),c}async fromLines(e){let t=await this.createRefactorBuffer();return await t.buffer.setLines(e,{start:0,end:-1,strictIndexing:!1}),t}async fromLocations(e,t){if(!e||e.length==0)return;let i={},r={changes:i};for(let o of e){let s=i[o.uri]||[];s.push({range:o.range,newText:""}),i[o.uri]=s}return await this.fromWorkspaceEdit(r,t)}async fromWorkspaceEdit(e,t){if(!e||VZ(e))return;let i=[],{beforeContext:r,afterContext:o}=this.config,{changes:s,documentChanges:a}=e;if(!s){s={};for(let u of a||[])if(ei.is(u)){let{textDocument:c,edits:d}=u;s[c.uri]=d}}for(let u of Object.keys(s)){let c=await this.getLineCount(u),d=s[u],h=[],g=null,f=null,m=[];d.sort((y,w)=>y.range.start.line-w.range.start.line);for(let y of d){let{line:w}=y.range.start,x=Math.max(0,w-r);g!=null&&x{"use strict";ae();Te();Pt();$();We();he();yb=class{constructor(e,t){this.nvim=e;this.handler=t}async getWordEdit(){let{doc:e,position:t}=await this.handler.getCurrentState(),i=e.getWordRangeAtPosition(t);if(!i||Kt(i))return null;let r=e.textDocument.getText(i);if(I.hasProvider("rename",e.textDocument)){await e.synchronize();let s=new p.CancellationTokenSource;if(await I.prepareRename(e.textDocument,t,s.token)!==!1){let l=r.startsWith("a")?"b":"a",u=await I.provideRenameEdits(e.textDocument,t,l,s.token);if(u)return u}}k.showInformationMessage("Rename provider not found, extract word ranges from current buffer");let o=e.getSymbolRanges(r);return{changes:{[e.uri]:o.map(s=>({range:s,newText:r}))}}}async rename(e){let{doc:t,position:i}=await this.handler.getCurrentState();this.handler.checkProvider("rename",t.textDocument),await t.synchronize();let r=new p.CancellationTokenSource().token,o=await I.prepareRename(t.textDocument,i,r);if(o===!1)return k.showWarningMessage("Invalid position for rename"),!1;let s;if(!e){M.is(o)?(s=t.textDocument.getText(o),await k.moveTo(o.start)):o&&typeof o.placeholder=="string"?s=o.placeholder:s=await this.nvim.eval('expand("")');let l=b.getConfiguration("coc.preferences",null);e=await k.requestInput("New name",l.get("renameFillCurrent",!0)?s:"")}if(e===""&&k.showWarningMessage("Empty word, rename canceled"),!e)return!1;let a=await I.provideRenameEdits(t.textDocument,i,e,r);return r.isCancellationRequested||!a?!1:(await b.applyEdit(a),this.nvim.redrawVim(),!0)}}});var vb,zK=D(()=>{"use strict";ae();Te();Se();Be();Pt();We();vb=class{constructor(e,t){this.nvim=e;this.handler=t;this.selectionRange=null}async getSelectionRanges(){let{doc:e,position:t}=await this.handler.getCurrentState();return this.handler.checkProvider("selectionRange",e.textDocument),await e.synchronize(),await this.handler.withRequestToken("selection ranges",r=>I.getSelectionRanges(e.textDocument,[t],r))}async selectRange(e,t){let{doc:i}=await this.handler.getCurrentState();this.handler.checkProvider("selectionRange",i.textDocument);let r=[];if(!t&&(!this.selectionRange||!e))return;if(e){let a=await k.getSelectedRange(e);r.push(a.start,a.end)}else{let a=await k.getCursorPosition();r.push(a)}if(!t){let a=M.create(r[0],r[1]),{selectionRange:l}=this;for(;l&&l.parent&&!Fe(l.parent.range,a);)l=l.parent;l&&l.parent&&await k.selectRange(l.range);return}await i.synchronize();let o=await this.handler.withRequestToken("selection ranges",a=>I.getSelectionRanges(i.textDocument,r,a));if(te(o))return!1;let s;if(o.length==1)s=o[0];else{let a=r[1]??r[0],l=M.create(r[0],a);for(s=o[0];s;){if(Fe(l,s.range)){s=s.parent;continue}if(Ot(r[0],s.range)==0&&Ot(a,s.range)==0)break;s=s.parent}}return s?(this.selectionRange=o[0],await k.selectRange(s.range),!0):!1}}});function LS(n){if(!n)return"";if(mI.has(n))return mI.get(n);let e=[];for(let i=0;i{"use strict";ae();Te();Ce();cI();ee();Se();Ti();ee();aa();$();pe();We();he();ave=J("semanticTokens-buffer"),lve=ge(15,5),Jd="CocSem",Yo="semanticTokens",KK=ge(100,20),uve=ge(500,20),mI=new Map,wb=class{constructor(e,t,i){this.nvim=e;this.doc=t;this.staticConfig=i;this._dirty=!1;this.regions=new Ga;this._onDidRefresh=new p.Emitter;this.onDidRefresh=this._onDidRefresh.event;this.highlight=ry(()=>{this.doHighlight()},KK),this.hasProvider&&this.highlight()}get config(){return this._config?this._config:(this.loadConfiguration(),this._config)}loadConfiguration(){let e=b.getConfiguration("semanticTokens",this.doc),t=this._config!=null&&this._config.enable!=e.enable;this._config={enable:e.get("enable"),highlightPriority:e.get("highlightPriority"),incrementTypes:e.get("incrementTypes"),combinedModifiers:e.get("combinedModifiers")},t&&(this._config.enable?this.highlight():this.clearHighlight())}get configEnabled(){let{enable:e}=this.config,{filetypes:t}=this.staticConfig;return Array.isArray(t)?t.includes("*")||t.includes(this.doc.filetype):e}get bufnr(){return this.doc.bufnr}onChange(){this.highlight()}onTextChange(){this.cancel()}async forceHighlight(){this.clearHighlight(),this.cancel(),await this.doHighlight(!0)}async onShown(){if(this.shouldRangeHighlight)return;let{doc:e}=this;e.dirty||e.version===this._version||await this.doHighlight(!1,!0)}get hasProvider(){return I.hasProvider("semanticTokens",this.doc)||I.hasProvider("semanticTokensRange",this.doc)}get hasLegend(){let{textDocument:e}=this.doc;return I.getLegend(e)!=null||I.getLegend(e,!0)!=null}get rangeProviderOnly(){return!I.hasProvider("semanticTokens",this.doc)&&I.hasProvider("semanticTokensRange",this.doc)}get shouldRangeHighlight(){let{textDocument:e}=this.doc;return I.hasProvider("semanticTokensRange",e)&&this.previousResults==null}get lineCount(){return this.doc.lineCount}get highlights(){if(!!this._highlights)return this._highlights[1]}get buffer(){return this.nvim.createBuffer(this.bufnr)}get enabled(){return!this.configEnabled||!b.env.updateHighlight||!this.hasLegend?!1:this.hasProvider}checkState(){if(!b.env.updateHighlight)throw new Error("Can't perform highlight update, highlight update requires vim >= 8.1.1719 or neovim >= 0.5.0");if(!this.configEnabled)throw new Error(`Semantic tokens highlight not enabled for current filetype: ${this.doc.filetype}`);if(!this.hasProvider||!this.hasLegend)throw new Error(`SemanticTokens provider not found for ${this.doc.uri}`);if(this.staticConfig.highlightGroups.length===0)throw new Error("Unable to find highlight groups starts with CocSem")}async getTokenRanges(e,t,i){let r=0,o=0,s=[],a,l=this.doc.textDocument,u=Date.now();for(let c=0;clve){if(await cr(),i.isCancellationRequested)break;u=Date.now()}let d=e[c],h=e[c+1],g=e[c+2],f=t.tokenTypes[e[c+3]],m=t.tokenModifiers.filter((C,P)=>e[c+4]&1<=i))continue;let u={lnum:l,hlGroup:a.hlGroup,colStart:a.range[1],colEnd:a.range[2],combine:a.combine};r.includes(a.tokenType)&&(u.end_incl=!0,u.start_incl=!0),s.push(u)}return s}async doHighlight(e=!1,t=!1){var l;if(this.cancel(),!this.enabled||!t&&!b.editors.isVisible(this.bufnr))return;let r=(this.tokenSource=new p.CancellationTokenSource).token;if(this.shouldRangeHighlight){let c=(this.rangeTokenSource=new p.CancellationTokenSource).token;if(await this.doRangeHighlight(c),c.isCancellationRequested||(this.rangeTokenSource=void 0),c.isCancellationRequested&&this.rangeProviderOnly)return}if(r.isCancellationRequested)return;let{doc:o}=this,s=o.version,a;if(s===((l=this.previousResults)==null?void 0:l.version))if(this._highlights&&this._highlights[0]==s)a=this._highlights[1];else{let u=this.previousResults.tokens,c=I.getLegend(o.textDocument);a=await this.getTokenRanges(u,c,r)}else a=await this.sendRequest(()=>this.requestAllHighlights(r,e),r);if(!(r.isCancellationRequested||!a)){if(this._highlights=[s,a],!this._dirty||a.length<200){let u=this.toHighlightItems(a),c=await k.diffHighlights(this.bufnr,Yo,u,void 0,r);if(r.isCancellationRequested||!c)return;this._dirty=!0,this._version=s;let d=this.config.highlightPriority;await k.applyDiffHighlights(this.bufnr,Yo,d,c)}else this.regions.clear(),await this.highlightRegions(r);r.isCancellationRequested||(this.tokenSource=void 0),this._onDidRefresh.fire()}}async sendRequest(e,t){try{return await e()}catch(i){t.isCancellationRequested||(i instanceof Ct?this.highlight(uve):ave.error("Error on request semanticTokens: ",i));return}}async doRangeHighlight(e){let{version:t}=this.doc,i=await this.sendRequest(()=>this.requestRangeHighlights(e),e);if(i==null||e.isCancellationRequested)return;let{highlights:r,start:o,end:s}=i;if(this.rangeProviderOnly||!this.previousResults){(!this._highlights||t!==this._highlights[0])&&(this._highlights=[t,[]]);let u=this._highlights[1],c=u.reduce((d,h)=>d.add(h.range[0]),new Set);r.forEach(d=>{c.has(d.range[0])||u.push(d)})}let a=this.toHighlightItems(r),l=await k.diffHighlights(this.bufnr,Yo,a,[o,s],e);if(l){let u=this.config.highlightPriority;await k.applyDiffHighlights(this.bufnr,Yo,u,l,!0),this._dirty=!0}}async highlightRegions(e,t=!1){let{regions:i,highlights:r,config:o,lineCount:s,bufnr:a}=this;if(!r)return;let l=await this.nvim.call("coc#window#visible_ranges",[a]);if(e.isCancellationRequested||l.length===0)return;let u=b.env.lines;l.forEach(c=>{let d=c[0];c[0]=Math.max(0,Math.floor(d-u*1.5)),c[1]=Math.min(s,Math.ceil(c[1]+u*1.5),d+u*2)});for(let[c,d]of Ga.mergeSpans(l)){if(!t&&i.has(c,d))continue;let h=this.toHighlightItems(r,c,d),g=await k.diffHighlights(a,Yo,h,[c,d],e);if(e.isCancellationRequested)break;i.add(c,d);let f=o.highlightPriority;g&&k.applyDiffHighlights(a,Yo,f,g,!0)}}async onCursorMoved(){if(this.cancel(!0),!this.enabled||this.doc.dirty)return;let t=(this.rangeTokenSource=new p.CancellationTokenSource).token;await Zi(KK),!t.isCancellationRequested&&(this.shouldRangeHighlight?await this.doRangeHighlight(t):await this.highlightRegions(t),t.isCancellationRequested||(this.rangeTokenSource=void 0))}async requestRangeHighlights(e){let{nvim:t,doc:i}=this,r=await t.call("coc#window#visible_range",[this.bufnr]);if(!r||e.isCancellationRequested)return null;let o=Math.min(r[0]+b.env.lines*2,r[1]+b.env.lines,i.lineCount),s=M.create(r[0]-1,0,o,0),a=await I.provideDocumentRangeSemanticTokens(i.textDocument,s,e);if(!a||!ea.is(a)||e.isCancellationRequested)return null;let l=I.getLegend(i.textDocument,!0),u=await this.getTokenRanges(a.data,l,e);return u?{highlights:u,start:r[0]-1,end:r[1]}:null}async requestAllHighlights(e,t){let i=this.doc.textDocument,r=I.getLegend(i),o=I.hasSemanticTokensEdits(i),s=t?null:this.previousResults,a=i.version,l;if(o&&(s==null?void 0:s.resultId)?l=await I.provideDocumentSemanticTokensEdits(i,s.resultId,e):l=await I.provideDocumentSemanticTokens(i,e),e.isCancellationRequested||l==null)return;let u=[];return ea.is(l)?u=l.data:s&&Array.isArray(l.edits)&&(u=s.tokens,l.edits.forEach(c=>{u.splice(c.start,on(c.deleteCount),...le(c.data))})),this.previousResults={resultId:l.resultId,tokens:u,version:a},await this.getTokenRanges(u,r,e)}clearHighlight(){this.previousResults=void 0,this._highlights=void 0,this.regions.clear(),this.buffer.clearNamespace(Yo)}abandonResult(){this.previousResults=void 0}cancel(e=!1){this.rangeTokenSource&&(this.rangeTokenSource.cancel(),this.rangeTokenSource=null),!e&&(this.regions.clear(),this.highlight.clear(),this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=null))}dispose(){this.cancel(),this.clearHighlight(),this._onDidRefresh.dispose()}}});function VK(){return b.initialConfiguration.get("semanticTokens.filetypes",null)}var FS,Ud,xb,eQ=D(()=>{"use strict";kt();Re();Te();Sa();ee();Se();pe();We();he();QK();FS="Statement";xb=class{constructor(e){this.nvim=e;this.disposables=[];this.staticConfig={filetypes:VK(),highlightGroups:[]},b.onDidChangeConfiguration(t=>{if(t.affectsConfiguration("semanticTokens")){this.staticConfig.filetypes=VK();for(let i of this.highlighters.items)i.loadConfiguration()}},this,this.disposables),ie.register({id:"semanticTokens.checkCurrent",execute:async()=>{await this.showHighlightInfo()}},!1,"show semantic tokens highlight information of current buffer"),ie.register({id:"semanticTokens.refreshCurrent",execute:()=>this.highlightCurrent()},!1,"refresh semantic tokens highlight of current buffer."),ie.register({id:"semanticTokens.inspect",execute:()=>this.inspectSemanticToken()},!1,"Inspect semantic token information at cursor position."),ie.register({id:"semanticTokens.clearCurrent",execute:async()=>{(await e.buffer).clearNamespace(Yo,0,-1)}},!1,"clear semantic tokens highlight of current buffer"),ie.register({id:"semanticTokens.clearAll",execute:async()=>{let t=await e.buffers;for(let i of t)i.clearNamespace(Yo,0,-1)}},!1,"clear semantic tokens highlight of all buffers"),this.highlighters=b.registerBufferSync(t=>new wb(this.nvim,t,this.staticConfig)),I.onDidSemanticTokensRefresh(async t=>{te(this.staticConfig.highlightGroups)&&await this.fetchHighlightGroups();let i=k.visibleTextEditors.map(r=>r.document.bufnr);for(let r of this.highlighters.items)!b.match(t,r.doc)||(r.hasProvider?(r.abandonResult(),i.includes(r.bufnr)&&r.highlight()):r.clearHighlight())},null,this.disposables),_.on("BufWinEnter",async t=>{let i=this.highlighters.getItem(t);i&&await i.onShown()},null,this.disposables),_.on("CursorMoved",async t=>{let i=this.highlighters.getItem(t);i&&await i.onCursorMoved()},null,this.disposables)}async inspectSemanticToken(){let e=await this.getCurrentItem();if(!e||!e.enabled){if(e)try{e.checkState()}catch(a){k.showErrorMessage(a.message)}else{let a=await b.document;k.showErrorMessage(`Document not attached, ${a.notAttachReason}`)}this.closeFloat();return}let[t,i,r]=await this.nvim.call("getcurpos",[]),s=le(e.highlights).find(a=>{let l=r-1;return a.range[0]===i-1&&l>=a.range[1]&&lc.hlGroup!=null).map(({hlGroup:c})=>c));for(let c of a)r.addTexts([{text:"-",hlGroup:"Comment"},{text:" "},{text:c,hlGroup:c}]);r.addLine(""),r.addLine("Tokens types that current Language Server supported:",FS),r.addLine("");let l=b.getDocument(i.bufnr),u=I.getLegend(l.textDocument)??I.getLegend(l.textDocument,!0);if(u.tokenTypes.length){for(let c of[...new Set(u.tokenTypes)]){let d=Jd+cs(c);r.addTexts([{text:"-",hlGroup:"Comment"},{text:" "},{text:d,hlGroup:d}])}r.addLine("")}else r.addLine("No token types supported","Comment"),r.addLine("");if(r.addLine("Tokens modifiers that current Language Server supported:",FS),r.addLine(""),u.tokenModifiers.length){for(let c of[...new Set(u.tokenModifiers)]){let d=Jd+cs(c);r.addTexts([{text:"-",hlGroup:"Comment"},{text:" "},{text:d,hlGroup:d}])}r.addLine("")}else r.addLine("No token modifiers exist","Comment"),r.addLine("")}catch(s){r.addLine(xr(s))}t.pauseNotification(),r.render(t.createBuffer(o[0][2])),t.resumeNotification(!0,!0)}dispose(){this.highlighters.dispose(),Y(this.disposables)}}});var cve,Cb,tQ=D(()=>{"use strict";Re();Te();ee();Se();ce();$();pe();We();he();IS();cve=ge(100,10),Cb=class{constructor(e,t){this.nvim=e;this.handler=t;this.disposables=[];this.loadConfiguration(),this.signatureFactory=k.createFloatFactory(Object.assign({preferTop:this.config.preferAbove,autoHide:!1,modes:["i","ic","s"]},this.config.floatConfig)),this.disposables.push(this.signatureFactory),b.onDidChangeConfiguration(this.loadConfiguration,this,this.disposables),_.on("CursorMovedI",mt(this.checkCurosr.bind(this),cve),null,this.disposables),_.on(["InsertLeave","BufEnter"],()=>{var i;(i=this.tokenSource)==null||i.cancel()},null,this.disposables),_.on("TextChangedI",()=>{this.config.hideOnChange&&this.signatureFactory.close()},null,this.disposables),_.on("TextInsert",async(i,r,o)=>{if(!this.config.enableTrigger)return;let s=b.getDocument(i);!s||!s.attached||!I.shouldTriggerSignatureHelp(s.textDocument,o)||await this._triggerSignatureHelp(s,{line:r.lnum-1,character:r.pre.length},!1)},null,this.disposables),k.onDidChangeActiveTextEditor(()=>{this.loadConfiguration()},null,this.disposables)}checkCurosr(e,t){let i=this.lastPosition,r=this.signatureFactory;if(!i||e!==i.bufnr||r.window==null)return;let o=b.getDocument(e);if(!o||t[0]!=i.lnum||t[1]{o.dispose(),this.tokenSource=void 0});let{target:a}=this.config,l=this.timer=setTimeout(()=>{o.cancel()},this.config.wait);await e.patchChange(!0);let u=await I.getSignatureHelp(e.textDocument,t,s,{isRetrigger:this.signatureFactory.checkRetrigger(e.bufnr),triggerKind:i?p.SignatureHelpTriggerKind.Invoked:p.SignatureHelpTriggerKind.TriggerCharacter});if(clearTimeout(l),s.isCancellationRequested)return!1;if(!u||u.signatures.length==0)return this.signatureFactory.close(),!1;let{activeSignature:c,signatures:d}=u;if(c){let[g]=d.splice(c,1);g&&d.unshift(g)}return a=="echo"?this.echoSignature(u):await this.showSignatureHelp(e,t,u,r),!0}async showSignatureHelp(e,t,i,r){let{signatures:o,activeParameter:s}=i;s=typeof s=="number"?s:void 0;let a=null,l=r,u=o.reduce((d,h,g)=>{var w;let f=null,m=h.activeParameter??s;m===void 0&&!te(h.parameters)&&(m=0);let y=h.label.indexOf("(");if(g==0&&typeof m=="number"){let x=(w=h.parameters)==null?void 0:w[m];if(x){let C=h.label.slice(y==-1?0:y);if(a=x.documentation,typeof x.label=="string"){let P=C.slice(0),T=P.match(new RegExp("\\b"+x.label.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b")),O=T?T.index:P.indexOf(x.label);O!=-1&&(f=[O+y,O+x.label.length+y])}else f=x.label}}return f==null&&(f=[y+1,y+1]),r==l&&(r=r+f[0]+1),d.push({content:h.label,filetype:e.filetype,active:f}),a&&d.push(oI(a)),g==0&&h.documentation&&d.push(oI(h.documentation)),d},[]),c=e.getline(t.line,!1).slice(0,t.character);this.lastPosition={bufnr:e.bufnr,lnum:t.line+1,col:de(c)+1},await this.signatureFactory.show(u,{offsetX:r})}echoSignature(e){var s;let{signatures:t,activeParameter:i}=e,r=b.env.columns;t=t.slice(0,b.env.cmdheight);let o=[];for(let a of t){let l=[],{label:u}=a;u=u.replace(/\n/g," "),u.length>=r-16&&(u=u.slice(0,r-16)+"...");let c=u.indexOf("(");if(c==-1)l=[{text:u,type:"Normal"}];else{l.push({text:u.slice(0,c),type:"Label"});let d=u.slice(c);if(o.length==0&&i!=null){let h=(s=a.parameters)==null?void 0:s[i];if(h){let g,f;if(typeof h.label=="string"){let m=d.slice(0),y=m.match(new RegExp("\\b"+h.label.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b")),w=y?y.index:m.indexOf(h.label);w==-1?l.push({text:d,type:"Normal"}):(g=w,f=w+h.label.length)}else[g,f]=h.label,g=g-c,f=f-c;g!=null&&f!=null&&(l.push({text:d.slice(0,g),type:"Normal"}),l.push({text:d.slice(g,f),type:"MoreMsg"}),l.push({text:d.slice(f),type:"Normal"}))}}else l.push({text:d,type:"Normal"})}o.push(l)}this.nvim.callTimer("coc#ui#echo_signatures",[o],!0)}dispose(){Y(this.disposables),this.timer&&clearTimeout(this.timer)}}});var Aot,dve,Sb,iQ=D(()=>{"use strict";Te();Ce();ee();ce();$();IS();Aot=J("symbols-buffer"),dve=ge(500,10),Sb=class{constructor(e,t){this.doc=e;this.autoUpdateBufnrs=t;this.disposables=[];this._onDidUpdate=new p.Emitter;this.onDidUpdate=this._onDidUpdate.event;this.fetchSymbols=mt(()=>{this._fetchSymbols().catch(Yd)},dve)}async getSymbols(){var t;let{doc:e}=this;return await e.patchChange(),this.autoUpdateBufnrs.add(e.bufnr),e.version==this.version&&((t=this.symbols)==null?void 0:t.length)?this.symbols:(this.cancel(),await this._fetchSymbols(),this.symbols)}onChange(e){e.contentChanges.length!==0&&(this.cancel(),this.autoUpdateBufnrs.has(this.doc.bufnr)&&this.fetchSymbols())}async _fetchSymbols(){let{textDocument:e}=this.doc,{version:t}=e,i=this.tokenSource=new p.CancellationTokenSource,{token:r}=i,o=await I.getDocumentSymbol(e,r);this.tokenSource=void 0,!(o==null||r.isCancellationRequested)&&(this.version=t,this.symbols=o,this._onDidUpdate.fire(o))}cancel(){this.fetchSymbols.clear(),this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource.dispose(),this.tokenSource=null)}dispose(){this.cancel(),this.symbols=void 0,this._onDidUpdate.dispose(),Y(this.disposables)}}});function hve(n){return n?typeof n.text=="string"&&typeof n.hlGroup=="string":!1}function gve(n,e){return n.label===e.label&&n.deprecated===e.deprecated&&n.key===e.key}function pve(n,e){return n.length!==e.length?!1:n.every((t,i)=>gve(t,e[i]))}var Db,nQ=D(()=>{"use strict";ot();$();kt();ee();Ap();Se();Db=class{constructor(e){this.opts=e;this.disposables=[];this._onDidChangeTreeData=new p.Emitter;this.onDidChangeTreeData=this._onDidChangeTreeData.event;this.invokeCommand=`_invoke_${me()}`,this.disposables.push(ie.registerCommand(this.invokeCommand,async t=>{await e.handleClick(t)},null,!0)),typeof e.resolveActions=="function"&&(this.resolveActions=e.resolveActions.bind(this))}iterate(e,t,i,r){let o=r(e,t,i);if(o===!1)return!1;if(Array.isArray(e.children)){for(let s of e.children)if(this.iterate(s,e,i+1,r)===!1)return!1}return o}updateNodes(e,t,i,r=!0){let o=pve(e,t),s=(a,l,u)=>{var d,h,g,f;let c=!1;for(let m of Object.keys(l))["children","key"].includes(m)||(a[m]=l[m]);if(((d=a.children)==null?void 0:d.length)&&!((h=l.children)!=null&&h.length)&&(delete a.children,c=!0),!((g=a.children)!=null&&g.length)&&((f=l.children)==null?void 0:f.length)&&(a.children=l.children,c=!0),c){u&&this._onDidChangeTreeData.fire(a);return}le(a.children).length>0&&le(l.children).length>0&&this.updateNodes(a.children,l.children,a,u)};if(o)for(let a=0;a!l.has(g)&&h.key==c.key):d=a.findIndex((h,g)=>!l.has(g)&&h.label==c.label),d===-1)e[u]=c;else{l.add(d);let h=a[d];s(h,c,!1),e[u]=h}}r&&this._onDidChangeTreeData.fire(i)}}update(e,t){if(!!this.data)return t?(this.data=le(e),this._onDidChangeTreeData.fire(void 0)):this.updateNodes(this.data,le(e),void 0),this.data}getTreeItem(e){var o;let t=e.label,{expandLevel:i}=this.opts,r;if(!((o=e.children)!=null&&o.length))r=new so(t);else if(i&&i>0){let s=this.getLevel(e),a=s&&s<=i?2:1;r=new so(t,a)}else r=new so(t,1);if(r.description=e.description,e.deprecated&&(r.deprecated=!0),e.tooltip&&(r.tooltip=e.tooltip),hve(e.icon))r.icon=e.icon;else if(typeof this.opts.resolveIcon=="function"){let s=this.opts.resolveIcon(e);s&&(r.icon=s)}return r}async getChildren(e){if(e)return e.children??[];if(this.data)return this.data;let t=await Promise.resolve(this.opts.provideData());if(!Array.isArray(t))throw new Error("Unable to fetch data");return this.data=t,t}getParent(e){if(!this.data)return;let t;for(let i of this.data)if(this.iterate(i,null,0,(o,s)=>{if(o===e)return t=s,!1})===!1)break;return t}getLevel(e){if(!this.data)return 0;let t=0;for(let i of le(this.data))if(this.iterate(i,null,1,(o,s,a)=>{if(o===e)return t=a,!1})===!1)break;return t}async resolveTreeItem(e,t,i){if(typeof this.opts.resolveItem=="function"){let r=await Promise.resolve(this.opts.resolveItem(e,t,i));r&&Object.assign(e,r)}return e.command||(e.command={title:`invoke ${t.label}`,command:this.invokeCommand,arguments:[t]}),e}dispose(){this.data=[],this._onDidChangeTreeData.dispose(),typeof this.opts.onDispose=="function"&&this.opts.onDispose(),Y(this.disposables)}}});function mve(n,e){let t,i=r=>{for(let o of r)if(Ot(n,o.range)==0){t=o,Array.isArray(o.children)&&i(o.children);break}};return i(e),t}var fve,Tb,rQ=D(()=>{"use strict";ae();Re();Te();nQ();Np();ee();Pt();We();he();fve=ge(300,10),Tb=class{constructor(e,t,i){this.nvim=e;this.buffers=t;this.handler=i;this.treeViewList=[];this.providersMap=new Map;this.sortByMap=new Map;this.disposables=[];this.loadConfiguration(),b.onDidChangeConfiguration(this.loadConfiguration,this,this.disposables),b.onDidCloseTextDocument(async r=>{let{bufnr:o}=r,s=this.providersMap.get(o);!s||await e.call("bufloaded",[o])||(this.providersMap.delete(o),s.dispose())},null,this.disposables),k.onDidChangeActiveTextEditor(async r=>{if(!this.config.checkBufferSwitch)return;this.treeViewList.find(s=>s.visible&&s.targetTabId==r.tabpageid)&&(await this.showOutline(r.document.bufnr,r.tabpageid),await e.command(`noa call win_gotoid(${r.winid})`))},null,this.disposables),_.on("CursorHold",async(r,o)=>{if(!this.config.followCursor||!this.providersMap.get(r))return;let a=await e.tabpage,l=this.treeViewList.find(u=>u.visible&&u.targetBufnr==r&&u.targetTabId==a.id);!l||await this.revealPosition(r,l,V.create(o[0]-1,o[1]-1))},null,this.disposables)}async revealPosition(e,t,i){let r=this.providersMap.get(e),o=await Promise.resolve(r.getChildren()),s=mve(i,o);s&&await t.reveal(s)}loadConfiguration(e){if(!e||e.affectsConfiguration("outline")){let t=b.getConfiguration("outline",null);this.config={splitCommand:t.get("splitCommand"),switchSortKey:t.get("switchSortKey"),togglePreviewKey:t.get("togglePreviewKey"),followCursor:t.get("followCursor"),keepWindow:t.get("keepWindow"),expandLevel:t.get("expandLevel"),autoWidth:t.get("autoWidth"),checkBufferSwitch:t.get("checkBufferSwitch"),detailAsDescription:t.get("detailAsDescription"),sortBy:t.get("sortBy"),showLineNumber:t.get("showLineNumber"),codeActionKinds:t.get("codeActionKinds"),autoPreview:t.get("autoPreview"),previewMaxWidth:t.get("previewMaxWidth"),previewBorder:t.get("previewBorder"),previewBorderRounded:t.get("previewBorderRounded"),previewHighlightGroup:t.get("previewHighlightGroup"),previewBorderHighlightGroup:t.get("previewBorderHighlightGroup"),previewWinblend:t.get("previewWinblend")}}}convertSymbolToNode(e,t){var s;let i=[],{detailAsDescription:r,showLineNumber:o}=this.config;return r&&e.detail&&i.push(e.detail),o&&i.push(`${e.selectionRange.start.line+1}`),{label:e.name,tooltip:r?void 0:e.detail,description:i.join(" "),icon:this.handler.getIcon(e.kind),deprecated:(s=e.tags)==null?void 0:s.includes(Ui.Deprecated),kind:e.kind,range:e.range,selectRange:e.selectionRange,children:Array.isArray(e.children)?e.children.map(a=>this.convertSymbolToNode(a,t)).sort(t):void 0}}setMessage(e,t){this.treeViewList.forEach(i=>{i.valid&&i.targetBufnr==e&&(i.message=t)})}convertSymbols(e,t){let i=this.getSortBy(e),r=(o,s)=>i==="name"?o.labelthis.convertSymbolToNode(o,r)).sort(r)}onSymbolsUpdate(e,t){let i=this.providersMap.get(e);i&&i.update(this.convertSymbols(e,t))}createProvider(e){let{nvim:t}=this,i=new Db({expandLevel:this.config.expandLevel,provideData:async()=>{let r=this.buffers.getItem(e);if(!r)throw new Error("Document not attached");let o=b.getDocument(e);if(!I.hasProvider("documentSymbol",o.textDocument))throw new Error("Document symbol provider not found");let s=I.getDocumentSymbolMetadata(o.textDocument);s&&s.label&&this.treeViewList.filter(u=>u.valid&&u.targetBufnr==e).forEach(u=>u.description=s.label),this.setMessage(e,"Loading document symbols");let a=await r.getSymbols();if(!a||a.length==0)throw new Error("Empty symbols returned from language server. ");return this.setMessage(e,void 0),this.convertSymbols(e,a)},handleClick:async r=>{let o=await t.call("bufwinnr",[e]);if(o==-1)return;t.pauseNotification(),t.command(`${o}wincmd w`,!0);let s=r.selectRange.start;t.call("coc#cursor#move_to",[s.line,s.character],!0),t.command("normal! zz",!0);let a=t.createBuffer(e);a.highlightRanges("outline-hover","CocHoverRange",[r.selectRange]),t.command("redraw",!0),await t.resumeNotification(),setTimeout(()=>{a.clearNamespace("outline-hover"),t.command("redraw",!0)},fve)},resolveActions:async(r,o)=>{let s=await t.call("bufwinnr",[e]);if(s==-1)return;let a=b.getDocument(e);return[...(await this.handler.getCodeActions(a,o.range,this.config.codeActionKinds)).map(c=>({title:c.title,handler:async()=>{let d=o.range.start;await t.command(`${s}wincmd w`),await this.nvim.call("coc#cursor#move_to",[d.line,d.character]),await this.handler.applyCodeAction(c)}})),{title:"Visual Select",handler:async c=>{await t.command(`${s}wincmd w`),await k.selectRange(c.range)}}]},onDispose:()=>{for(let r of this.treeViewList.slice())r.provider===i&&r.dispose()}});return i}getSortBy(e){return this.sortByMap.get(e)??this.config.sortBy}async showOutline(e,t){this.providersMap.has(e)||this.providersMap.set(e,this.createProvider(e));let i=this.treeViewList.find(r=>r.valid&&r.targetBufnr==e&&r.targetTabId==t);if(!i){let{switchSortKey:r,togglePreviewKey:o}=this.config,s=this.config.autoPreview,a;i=new Eo("OUTLINE",{autoWidth:this.config.autoWidth,bufhidden:"hide",enableFilter:!0,treeDataProvider:this.providersMap.get(e)});let l=this.getSortBy(e),u;i.description=`${l[0].toUpperCase()}${l.slice(1)}`,this.treeViewList.push(i);let c=_.on("BufEnter",d=>{a&&d!==a&&(u=void 0,this.closePreview())});i.onDispose(()=>{let d=this.treeViewList.findIndex(h=>h===i);d!==-1&&this.treeViewList.splice(d,1),c.dispose(),this.closePreview()}),i.onDidCursorMoved(async d=>{s&&u!==d&&(u=d,a=await this.doPreview(e,d))}),i.registerLocalKeymap("n",r,async()=>{let d=["category","name","position"],h=this.getSortBy(e),g=d.map(x=>({text:x,disabled:x===h})),f=await k.showMenuPicker(g,{title:"Choose sort method"});if(f<0)return;let m=d[f];this.sortByMap.set(e,m),this.treeViewList.filter(x=>x.targetBufnr==e).forEach(x=>{x.description=`${m[0].toUpperCase()}${m.slice(1)}`});let w=this.buffers.getItem(e);this.onSymbolsUpdate(e,w.symbols)},!0),i.registerLocalKeymap("n",o,async d=>{s=!s,s?a=await this.doPreview(e,d):(u=void 0,this.closePreview())},!0)}return await i.show(this.config.splitCommand,!1),i}async doPreview(e,t){if(!t){this.closePreview();return}let i={bufnr:e,range:t.range,border:this.config.previewBorder,rounded:this.config.previewBorderRounded,maxWidth:this.config.previewMaxWidth,highlight:this.config.previewHighlightGroup,borderhighlight:this.config.previewBorderHighlightGroup,winblend:this.config.previewWinblend};return await this.nvim.call("coc#ui#outline_preview",[i])}closePreview(){this.nvim.call("coc#ui#outline_close_preview",[],!0)}async show(e){let[t,i]=await this.nvim.eval('[bufnr("%"),win_getid()]'),r=await this.nvim.tabpage,o=b.getDocument(t);if(o&&!o.attached){k.showErrorMessage(`Unable to show outline, ${o.notAttachReason}`);return}let s=await k.getCursorPosition(),a=await this.showOutline(t,r.id);if(e==1||e===void 0&&this.config.keepWindow)await this.nvim.command(`noa call win_gotoid(${i})`);else if(this.config.followCursor){let l=a.onDidRefrash(async()=>{l.dispose(),await this.nvim.eval('bufnr("%")')==t&&a.visible&&await this.revealPosition(t,a,s)})}}has(e){return this.providersMap.has(e)}async hide(){let e=await this.nvim.call("coc#window#find",["cocViewId","OUTLINE"]);e!=-1&&await this.nvim.call("coc#window#close",[e])}dispose(){for(let e of this.treeViewList)e.dispose();this.treeViewList=[];for(let e of this.providersMap.values())e.dispose();this.providersMap.clear(),Y(this.disposables)}}});function oQ(n){let e=[],t=n.slice();return t.sort(sQ),t.forEach(i=>aQ(e,i,0)),e}function sQ(n,e){let t=n.selectionRange,i=e.selectionRange;return ze(t.start,i.start)}function aQ(n,e,t){let{name:i,selectionRange:r,detail:o,kind:s,children:a,range:l,tags:u}=e,{start:c}=ye(r,l),d={col:c.character+1,lnum:c.line+1,text:i,level:t,kind:js(s),range:l,selectionRange:r};if(o&&(d.detail=o),u&&u.includes(Ui.Deprecated)&&(d.deprecated=!0),n.push(d),a&&a.length){a.sort(sQ);for(let h of a)aQ(n,h,t+1)}}var lQ=D(()=>{"use strict";ae();ee();wm();Pt()});var kb,uQ=D(()=>{"use strict";ae();Re();Te();ee();Be();Pt();$();pe();We();he();iQ();rQ();lQ();kb=class{constructor(e,t){this.nvim=e;this.handler=t;this.disposables=[];this.autoUpdateBufnrs=new Set;this.buffers=b.registerBufferSync(i=>{let{bufnr:r}=i,o=new Sb(i,this.autoUpdateBufnrs);return o.onDidUpdate(s=>{!this.outline||this.outline.onSymbolsUpdate(r,s)}),o}),this.outline=new Tb(e,this.buffers,t),_.on("CursorHold",async(i,r)=>{if(!this.buffers.getItem(i)||!this.autoUpdate(i))return;let o=b.getDocument(i),s=Mt(o.getline(r[0]-1),r[1]-1),a=V.create(r[0]-1,s),l=await this.getFunctionSymbol(i,a);e.createBuffer(i).setVar("coc_current_function",l??"",!0),this.nvim.call("coc#util#do_autocmd",["CocStatusChange"],!0)},null,this.disposables),_.on("InsertEnter",i=>{let r=this.buffers.getItem(i);r&&r.cancel()},null,this.disposables)}autoUpdate(e){let t=b.getDocument(e);return b.getConfiguration("coc.preferences",t).get("currentFunctionSymbolAutoUpdate",!1)}get labels(){return b.getConfiguration("suggest").get("completionItemKindLabels",{})}async getWorkspaceSymbols(e){this.handler.checkProvider("workspaceSymbols",null);let t=new p.CancellationTokenSource;return await I.getWorkspaceSymbols(e,t.token)}async resolveWorkspaceSymbol(e){var i;if((i=e.location)!=null&&i.uri)return e;let t=new p.CancellationTokenSource;return await I.resolveWorkspaceSymbol(e,t.token)}async getDocumentSymbols(e){if(!e){e=await this.nvim.call("bufnr",["%"]);let r=b.getDocument(e);if(!r||!r.attached)return}let t=this.buffers.getItem(e);if(!t)return;let i=await t.getSymbols();return i?oQ(i):void 0}async getFunctionSymbol(e,t){let i=await this.getDocumentSymbols(e),r=this.nvim.createBuffer(e);if(!i||i.length===0)return r.setVar("coc_current_function","",!0),this.nvim.call("coc#util#do_autocmd",["CocStatusChange"],!0),"";i=i.filter(a=>["Class","Method","Function","Struct"].includes(a.kind));let o="",s=this.labels;for(let a of i.reverse())if(a.range&&Ot(t,a.range)==0&&!a.text.endsWith(") callback")){o=a.text;let l=s[a.kind.toLowerCase()];l&&(o=`${l} ${o}`);break}return o}async getCurrentFunctionSymbol(){let e=await this.nvim.call("bufnr",["%"]),t=b.getDocument(e);if(!t||!t.attached||!I.hasProvider("documentSymbol",t.textDocument))return;let i=await k.getCursorPosition();return await this.getFunctionSymbol(e,i)}async selectSymbolRange(e,t,i){let{doc:r}=await this.handler.getCurrentState();this.handler.checkProvider("documentSymbol",r.textDocument);let o;if(t)o=await k.getSelectedRange(t);else{let l=await k.getCursorPosition();o=M.create(l,l)}let s=await this.getDocumentSymbols(r.bufnr);if(!s||s.length===0){k.showWarningMessage("No symbols found");return}s=s.filter(l=>i.includes(l.kind));let a;for(let l of s.reverse())if(l.range&&!Fe(l.range,o)&&ri(o,l.range)){a=l.range;break}if(e&&a){let{start:l,end:u}=a,c=r.getline(l.line+1),d=r.getline(u.line-1);a=M.create(l.line+1,c.match(/^\s*/)[0].length,u.line-1,d.length)}a?await k.selectRange(a):["v","V",""].includes(t)&&await this.nvim.command("normal! gv")}async showOutline(e){await this.outline.show(e)}async hideOutline(){await this.outline.hide()}hasOutline(e){return this.outline.has(e)}dispose(){this.outline.dispose(),this.buffers.dispose(),Y(this.disposables)}}});function bve(n){return ni(n,["children","parent"])}function cQ(n){return n==="supertypes"?"Super types":"Sub types"}var _u,Eu,dQ=D(()=>{"use strict";kt();Re();Te();rI();Np();ee();Se();Tr();We();he();_u=class{constructor(e,t){this.nvim=e;this.handler=t;this.disposables=[];this.highlightWinids=new Set;this.loadConfiguration(),b.onDidChangeConfiguration(this.loadConfiguration,this,this.disposables),_.on("BufWinEnter",(i,r)=>{this.highlightWinids.has(r)&&(this.highlightWinids.delete(r),e.createWindow(r).clearMatchGroup(_u.rangesHighlight))},null,this.disposables),this.disposables.push(ie.registerCommand(_u.commandId,async(i,r,o)=>{let{nvim:s}=this;await s.call("win_gotoid",[i]),await b.jumpTo(r.uri,r.range.start,o);let a=await s.window;a.clearMatchGroup(_u.rangesHighlight),a.highlightRanges(_u.rangesHighlight,[r.selectionRange],10,!0),this.highlightWinids.add(a.id)},null,!0))}loadConfiguration(e){if(!e||e.affectsConfiguration("typeHierarchy")){let t=b.getConfiguration("typeHierarchy",null);this.config={splitCommand:t.get("splitCommand"),openCommand:t.get("openCommand"),enableTooltip:t.get("enableTooltip")}}}createProvider(e,t,i){let r=new Xa(i,t,this.config,_u.commandId,e,o=>this.handler.getIcon(o),(o,s,a)=>this.getChildren(o,s,a));return r.addAction("Show Super Types",o=>{r.meta="supertypes";let s=[ni(o,["children","parent"])];r.reset(s)}),r.addAction("Show Sub Types",o=>{r.meta="subtypes";let s=[ni(o,["children","parent"])];r.reset(s)}),r}async getChildren(e,t,i){let r=[],o=bve(e);return t=="supertypes"?r=await I.provideTypeHierarchySupertypes(o,i):r=await I.provideTypeHierarchySubtypes(o,i),r}async prepare(e,t){return this.handler.checkProvider("typeHierarchy",e),await this.handler.withRequestToken("typeHierarchy",async i=>await I.prepareTypeHierarchy(e,t,i),!1)}async showTypeHierarchyTree(e){let{doc:t,position:i,winid:r}=await this.handler.getCurrentState();await t.synchronize();let o=await this.prepare(t.textDocument,i);if(te(o)){k.showWarningMessage("Unable to get TypeHierarchyItems at cursor position.");return}let s=this.createProvider(o,r,e),a=new Eo("types",{treeDataProvider:s});a.title=cQ(e),s.onDidChangeTreeData(l=>{l||(a.title=cQ(s.meta))}),a.onDidChangeVisibility(l=>{l.visible||s.dispose()}),this.disposables.push(a),await a.show(this.config.splitCommand)}dispose(){this.highlightWinids.clear(),Y(this.disposables)}},Eu=_u;Eu.rangesHighlight="CocSelectedRange",Eu.commandId="typeHierarchy.reveal"});var hQ,Pb,gQ=D(()=>{"use strict";ot();hQ=require("v8");Je();kt();_w();bu();Te();Ce();Sa();Du();ee();Jt();Ti();at();Xe();ce();pe();We();he();Pb=class{constructor(e){this.nvim=e;Object.defineProperty(k,"openLocalConfig",{get:()=>this.openLocalConfig.bind(this)}),ie.register({id:"workspace.openLocation",execute:async(t,i,r)=>{await e.call("win_gotoid",[t]),await b.jumpTo(i.uri,i.range.start,r)}},!0),ie.register({id:"workspace.undo",execute:async()=>{await b.files.undoWorkspaceEdit()}},!1,"Undo previous this.workspace edit"),ie.register({id:"workspace.redo",execute:async()=>{await b.files.redoWorkspaceEdit()}},!1,"Redo previous this.workspace edit"),ie.register({id:"workspace.inspectEdit",execute:async()=>{await b.files.inspectEdit()}},!1,"Inspect previous this.workspace edit in new tab"),ie.register({id:"workspace.renameCurrentFile",execute:async()=>{await this.renameCurrent()}},!1,"change current filename to a new name and reload it."),ie.register({id:"document.checkBuffer",execute:async()=>{await this.bufferCheck()}},!1,"Check providers for current buffer."),ie.register({id:"document.echoFiletype",execute:async()=>{let t=await e.call("bufnr","%"),i=b.getAttachedDocument(t);await k.echoLines([i.filetype])}},!1,"echo the mapped filetype of the current buffer"),ie.register({id:"workspace.workspaceFolders",execute:async()=>{let i=b.workspaceFolders.map(r=>A.parse(r.uri).fsPath);await k.echoLines(i)}},!1,"show opened workspaceFolders."),ie.register({id:"workspace.writeHeapSnapshot",execute:async()=>{let t=R.join(Et.homedir(),`${me()}-${process.pid}.heapsnapshot`);return(0,hQ.writeHeapSnapshot)(t),k.showInformationMessage(`Create heapdump at: ${t}`),t}},!1,"Generates a snapshot of the current V8 heap and writes it to a JSON file."),ie.register({id:"workspace.showOutput",execute:async t=>{t||(t=await k.showQuickPick(b.channelNames,{title:"Choose output name"})),k.showOutputChannel(se(t))}},!1,"open output buffer to show output from languageservers or extensions."),ie.register({id:"workspace.clearWatchman",execute:async()=>{let t=await k.runTerminalCommand("watchman watch-del-all");return t.success&&k.showInformationMessage("Cleared watchman watching directories."),t.success}},!1,"run watch-del-all for watchman to free up memory.")}async openLog(){let e=oy();await b.jumpTo(A.file(e).toString())}async openLocalConfig(){let e=await this.nvim.call("expand",["%:p"]),t=await this.nvim.eval("&filetype");if(!e||!R.isAbsolute(e)){k.showWarningMessage("Current buffer doesn't have valid file path.");return}let i=b.getWorkspaceFolder(A.file(e).toString());if(!i){let s=b.initialConfiguration.get("workspace"),a=ye(s.rootPatterns,[]),l=ye(s.ignoredFiletypes,[]),u;l.includes(t)&&(u=`Filetype '${t}' is ignored for workspace folder resolve.`),u||(u=`Can't resolve workspace folder for file '${e}, consider create one of ${a.join(", ")} in your project root.'.`),k.showWarningMessage(u);return}let r=A.parse(i.uri).fsPath,o=R.join(r,".vim");if(!F.existsSync(o)){if(!await k.showPrompt(`Would you like to create folder'${r}/.vim'?`))return;F.mkdirSync(o)}await b.jumpTo(A.file(R.join(o,Eg)))}async renameCurrent(){let{nvim:e}=this,t=await e.call("expand",["%:p"]),i=await e.callAsync("coc#util#with_callback",["input",["New path: ",t,"file"]]);i=i.trim(),!(i===t||!i)&&(t.toLowerCase()!=i.toLowerCase()&&F.existsSync(i)&&!await k.showPrompt(`${i} exists, overwrite?`)||await b.renameFile(t,i,{overwrite:!0}))}addWorkspaceFolder(e){if(!Ue(e))throw TypeError("folder should be string");if(e=b.expand(e),!Tc(e))throw A8(e);b.workspaceFolderControl.addWorkspaceFolder(e,!0)}async bufferCheck(){let e=await b.document;if(!e.attached){await k.showDialog({title:"Buffer check result",content:`Document not attached, ${e.notAttachReason}`,highlight:"WarningMsg"});return}let t=new Ki;t.addLine("Provider state","Title"),t.addLine("");for(let i of Object.values(Nt)){if(i==="onTypeEdit")continue;let r=I.hasProvider(i,e.textDocument);t.addTexts([{text:"-",hlGroup:"Comment"},{text:" "},r?{text:"\u2713",hlGroup:"CocListFgGreen"}:{text:"\u2717",hlGroup:"CocListFgRed"},{text:" "},{text:i,hlGroup:r?"Normal":"CocFadeOut"}])}await k.showDialog({title:"Buffer check result",content:t.content,highlights:t.highlights})}async doAutocmd(e,t){await b.autocmds.doAutocmd(e,t)}async getConfiguration(e){let t=await b.document;return b.getConfiguration(e,t)}getRootPatterns(e){let t=b.getDocument(e);return t?{buffer:b.workspaceFolderControl.getRootPatterns(t,0),server:b.workspaceFolderControl.getRootPatterns(t,1),global:b.workspaceFolderControl.getRootPatterns(t,2)}:null}async ensureDocument(){let e=await b.document;return e&&e.attached}async doKeymap(e,t=""){return await b.keymaps.doKeymap(e,t)}async snippetCheck(e,t){return!!(t&&mi.jumpable()||e&&await Promise.resolve(Wt.manager.call("coc-snippets","expandable",[])))}async showInfo(){let e=[],t=b.version+"-b7375d5f 2023-01-30 05:09:03 +0800";e.push("## versions"),e.push("");let r=(await this.nvim.call("execute",["version"])).trim().split(/\r?\n/,2)[0].replace(/\(.*\)/,"").trim();e.push("vim version: "+r+`${ai?" "+b.env.version:""}`),e.push("node version: "+process.version),e.push("coc.nvim version: "+t),e.push("coc.nvim directory: "+R.dirname(__dirname)),e.push("term: "+ye(process.env.TERM_PROGRAM,process.env.TERM)),e.push("platform: "+process.platform),e.push(""),e.push("## Log of coc.nvim"),e.push("");let o=oy(),s=Kb();if(F.existsSync(o)){let l=F.readFileSync(o,{encoding:"utf8"});e.push(...l.split(/\r?\n/).map(u=>s(u)))}await this.nvim.command("vnew +setl\\ buftype=nofile\\ bufhidden=wipe\\ nobuflisted"),await(await this.nvim.buffer).setLines(e,{start:0,end:-1,strictIndexing:!1})}}});var yve,vve,Rb,pQ=D(()=>{"use strict";ae();kt();Re();Te();Ce();ee();wm();Be();$();Pr();We();he();xK();CK();TK();_K();EK();IK();LK();FK();MK();OK();AK();BK();qK();XK();GK();zK();eQ();tQ();uQ();dQ();gQ();yve=J("Handler"),vve=ge(500,10),Rb=class{constructor(e){this.nvim=e;this.disposables=[];_.on(["CursorMoved","CursorMovedI","InsertEnter","InsertSnippet","InsertLeave"],()=>{this.requestTokenSource&&(this.requestTokenSource.cancel(),this.requestTokenSource=null)},null,this.disposables),this.fold=new rb(e,this),this.links=new hb(e,this),this.codeLens=new Vm(e),this.colors=new ib(e,this),this.format=new ob(e,this),this.symbols=new kb(e,this),this.refactor=new bb(e,this),this.hover=new lb(e,this),this.locations=new gb(e,this),this.signature=new Cb(e,this),this.rename=new yb(e,this),this.workspace=new Pb(e),this.codeActions=new Km(e,this),this.commands=new nb(e),this.callHierarchy=new Wd(e,this),this.typeHierarchy=new Eu(e,this),this.documentHighlighter=new sb(e,this),this.semanticHighlighter=new xb(e),this.selectionRange=new vb(e,this),this.linkedEditingHandler=new db(e,this),this.inlayHintHandler=new cb(e,this),this.disposables.push({dispose:()=>{this.callHierarchy.dispose(),this.typeHierarchy.dispose(),this.codeLens.dispose(),this.links.dispose(),this.refactor.dispose(),this.signature.dispose(),this.symbols.dispose(),this.hover.dispose(),this.colors.dispose(),this.documentHighlighter.dispose(),this.semanticHighlighter.dispose()}}),this.registerCommands()}registerCommands(){ie.register({id:"document.renameCurrentWord",execute:async()=>{let e=await b.document,t=await this.rename.getWordEdit(),i=eJ(e.uri,$e(t));if(!i)return k.showWarningMessage("Invalid position");await ie.executeCommand("editor.action.addRanges",i)}},!1,"rename word under cursor in current buffer by multiple cursors."),ie.register({id:["workbench.action.reloadWindow","editor.action.restart"],execute:()=>{this.nvim.command("CocRestart",!0)}},!0),this.register("vscode.open",async e=>{await b.openResource(e.toString())}),this.register("editor.action.doCodeAction",async e=>{await this.codeActions.applyCodeAction(e)}),this.register("editor.action.triggerParameterHints",async()=>{await this.signature.triggerSignatureHelp()}),this.register("editor.action.showReferences",async(e,t,i)=>{await b.jumpTo(e,t),await b.showLocations(i)}),this.register("editor.action.rename",async(e,t,i)=>(Array.isArray(e)&&(t=e[1],e=e[0]),await b.jumpTo(e,t),await this.rename.rename(i))),this.register("editor.action.format",async()=>{await this.format.formatCurrentBuffer()}),this.register("editor.action.showRefactor",async e=>{let t=e.filter(i=>Ze.is(i));return await this.refactor.fromLocations(t)})}register(e,t){this.disposables.push(ie.registerCommand(e,t,null,!0))}get requestStatusItem(){return this._requestStatusItem?this._requestStatusItem:(this._requestStatusItem=k.createStatusBarItem(0,{progress:!0}),this._requestStatusItem)}get labels(){return b.initialConfiguration.get("suggest.completionItemKindLabels",{})}get uri(){var e;return(e=k.activeTextEditor)==null?void 0:e.document.uri}async getCurrentState(){let{nvim:e}=this,[t,[i,r],o,s]=await e.eval("[bufnr('%'),coc#cursor#position(),win_getid(),mode()]");return{doc:b.getAttachedDocument(t),mode:s,position:V.create(i,r),winid:o}}addDisposable(e){this.disposables.push(e)}checkProvider(e,t){if(!I.hasProvider(e,t))throw new Error(`${e} provider not found for current buffer, your language server doesn't support it.`)}async withRequestToken(e,t,i){this.requestTokenSource&&(this.requestTokenSource.cancel(),this.requestTokenSource.dispose()),clearTimeout(this.requestTimer);let r=this.requestStatusItem;this.requestTokenSource=new p.CancellationTokenSource;let{token:o}=this.requestTokenSource;o.onCancellationRequested(()=>{r.text=`${e} request canceled`,r.isProgress=!1,this.requestTimer=setTimeout(()=>{r.hide()},vve)}),r.isProgress=!0,r.text=`requesting ${e}`,r.show();let s;try{s=await Promise.resolve(t(o))}catch(a){yve.error(`Error on request ${e}`,a),this.nvim.errWriteLine(`Error on ${e}: ${a}`)}return this.requestTokenSource&&(this.requestTokenSource.dispose(),this.requestTokenSource=void 0),o.isCancellationRequested?null:(r.hide(),i&&(!s||Array.isArray(s)&&s.length==0)?(k.showWarningMessage(`${e} not found`),null):s)}getIcon(e){let{labels:t}=this,i=js(e),r=typeof t.default=="string"?t.default:i[0].toLowerCase(),o=i=="Unknown"?"":t[i[0].toLowerCase()+i.slice(1)];return o||(o=r),{text:o,hlGroup:i=="Unknown"?"CocSymbolDefault":`CocSymbol${i}`}}async getCodeActions(e,t,i){return(await this.codeActions.getCodeActions(e,t,i)).filter(o=>!o.disabled)}async applyCodeAction(e){await this.codeActions.applyCodeAction(e)}async hasProvider(e){let t=await this.nvim.call("bufnr","%"),i=b.getDocument(t);return!i||!i.attached?!1:I.hasProvider(e,i.textDocument)}dispose(){this.requestTimer&&clearTimeout(this.requestTimer),Y(this.disposables)}}});var wve,_b,fQ=D(()=>{"use strict";ae();kt();gK();Su();mK();td();Re();bu();pQ();fS();Ce();Pm();Du();ee();We();he();wve=J("plugin"),_b=class{constructor(e){this.nvim=e;this.ready=!1;this.initialized=!1;this.actions=new Map;this.disposables=[];Object.defineProperty(k,"workspace",{get:()=>b}),Object.defineProperty(b,"nvim",{get:()=>this.nvim}),Object.defineProperty(k,"nvim",{get:()=>this.nvim}),Object.defineProperty(k,"cursors",{get:()=>this.cursors}),Object.defineProperty(ie,"nvim",{get:()=>this.nvim}),this.cursors=new Gm(e),Wi.init(e),this.addAction("checkJsonExtension",()=>{Wt.has("coc-json")||k.showInformationMessage("Run :CocInstall coc-json for json intellisense")}),this.addAction("rootPatterns",t=>this.handler.workspace.getRootPatterns(t)),this.addAction("ensureDocument",()=>this.handler.workspace.ensureDocument()),this.addAction("addWorkspaceFolder",t=>this.handler.workspace.addWorkspaceFolder(t)),this.addAction("getConfig",t=>this.handler.workspace.getConfiguration(t)),this.addAction("doAutocmd",(t,...i)=>this.handler.workspace.doAutocmd(t,i)),this.addAction("openLog",()=>this.handler.workspace.openLog()),this.addAction("attach",()=>b.attach()),this.addAction("detach",()=>b.detach()),this.addAction("doKeymap",(t,i)=>this.handler.workspace.doKeymap(t,i)),this.addAction("registerExtensions",(...t)=>Wt.manager.loadExtension(t),"registExtensions"),this.addAction("snippetCheck",(t,i)=>this.handler.workspace.snippetCheck(t,i)),this.addAction("snippetInsert",(t,i,r,o)=>mi.insertSnippet(i,!0,t,r,o)),this.addAction("snippetNext",()=>mi.nextPlaceholder()),this.addAction("snippetPrev",()=>mi.previousPlaceholder()),this.addAction("snippetCancel",()=>mi.cancel()),this.addAction("openLocalConfig",()=>this.handler.workspace.openLocalConfig()),this.addAction("bufferCheck",()=>this.handler.workspace.bufferCheck()),this.addAction("showInfo",()=>this.handler.workspace.showInfo()),this.addAction("hasProvider",t=>this.handler.hasProvider(t)),this.addAction("cursorsSelect",(t,i,r)=>this.cursors.select(t,i,r)),this.addAction("fillDiagnostics",t=>hi.setLocationlist(t)),this.addAction("commandList",()=>this.handler.commands.getCommandList()),this.addAction("selectSymbolRange",(t,i,r)=>this.handler.symbols.selectSymbolRange(t,i,r)),this.addAction("openList",(...t)=>Wi.start(t)),this.addAction("listNames",()=>Wi.names),this.addAction("listDescriptions",()=>Wi.descriptions),this.addAction("listLoadItems",t=>Wi.loadItems(t)),this.addAction("listResume",t=>Wi.resume(t)),this.addAction("listCancel",()=>Wi.cancel(!0)),this.addAction("listPrev",t=>Wi.previous(t)),this.addAction("listNext",t=>Wi.next(t)),this.addAction("listFirst",t=>Wi.first(t)),this.addAction("listLast",t=>Wi.last(t)),this.addAction("sendRequest",(t,i,r)=>Sn.sendRequest(t,i,r)),this.addAction("sendNotification",(t,i,r)=>Sn.sendNotification(t,i,r)),this.addAction("registerNotification",(t,i)=>Sn.registerNotification(t,i),"registNotification"),this.addAction("updateConfig",(t,i)=>b.configurations.updateMemoryConfig({[t]:i})),this.addAction("links",()=>this.handler.links.getLinks()),this.addAction("openLink",()=>this.handler.links.openCurrentLink()),this.addAction("pickColor",()=>this.handler.colors.pickColor()),this.addAction("colorPresentation",()=>this.handler.colors.pickPresentation()),this.addAction("highlight",()=>this.handler.documentHighlighter.highlight()),this.addAction("fold",t=>this.handler.fold.fold(t)),this.addAction("startCompletion",t=>Ym.startCompletion(t)),this.addAction("sourceStat",()=>_i.sourceStats()),this.addAction("refreshSource",t=>_i.refresh(t)),this.addAction("toggleSource",t=>_i.toggleSource(t)),this.addAction("diagnosticRefresh",t=>hi.refresh(t)),this.addAction("diagnosticInfo",()=>hi.echoCurrentMessage()),this.addAction("diagnosticToggle",t=>hi.toggleDiagnostic(t)),this.addAction("diagnosticToggleBuffer",(t,i)=>hi.toggleDiagnosticBuffer(t,i)),this.addAction("diagnosticNext",t=>hi.jumpNext(t)),this.addAction("diagnosticPrevious",t=>hi.jumpPrevious(t)),this.addAction("diagnosticPreview",()=>hi.preview()),this.addAction("diagnosticList",()=>hi.getDiagnosticList()),this.addAction("findLocations",(t,i,r,o)=>this.handler.locations.findLocations(t,i,r,o)),this.addAction("getTagList",()=>this.handler.locations.getTagList()),this.addAction("definitions",()=>this.handler.locations.definitions()),this.addAction("declarations",()=>this.handler.locations.declarations()),this.addAction("implementations",()=>this.handler.locations.implementations()),this.addAction("typeDefinitions",()=>this.handler.locations.typeDefinitions()),this.addAction("references",t=>this.handler.locations.references(t)),this.addAction("jumpUsed",t=>this.handler.locations.gotoReferences(t,!1)),this.addAction("jumpDefinition",t=>this.handler.locations.gotoDefinition(t)),this.addAction("jumpReferences",t=>this.handler.locations.gotoReferences(t)),this.addAction("jumpTypeDefinition",t=>this.handler.locations.gotoTypeDefinition(t)),this.addAction("jumpDeclaration",t=>this.handler.locations.gotoDeclaration(t)),this.addAction("jumpImplementation",t=>this.handler.locations.gotoImplementation(t)),this.addAction("doHover",t=>this.handler.hover.onHover(t)),this.addAction("definitionHover",t=>this.handler.hover.definitionHover(t)),this.addAction("getHover",t=>this.handler.hover.getHover(t)),this.addAction("showSignatureHelp",()=>this.handler.signature.triggerSignatureHelp()),this.addAction("documentSymbols",t=>this.handler.symbols.getDocumentSymbols(t)),this.addAction("symbolRanges",()=>this.handler.documentHighlighter.getSymbolsRanges()),this.addAction("selectionRanges",()=>this.handler.selectionRange.getSelectionRanges()),this.addAction("rangeSelect",(t,i)=>this.handler.selectionRange.selectRange(t,i)),this.addAction("rename",t=>this.handler.rename.rename(t)),this.addAction("getWorkspaceSymbols",t=>this.handler.symbols.getWorkspaceSymbols(t)),this.addAction("resolveWorkspaceSymbol",t=>this.handler.symbols.resolveWorkspaceSymbol(t)),this.addAction("formatSelected",t=>this.handler.format.formatCurrentRange(t)),this.addAction("format",()=>this.handler.format.formatCurrentBuffer()),this.addAction("commands",()=>ie.commandList),this.addAction("services",()=>Sn.getServiceStats()),this.addAction("toggleService",t=>Sn.toggle(t)),this.addAction("codeAction",(t,i,r)=>this.handler.codeActions.doCodeAction(t,i,r)),this.addAction("organizeImport",()=>this.handler.codeActions.organizeImport()),this.addAction("fixAll",()=>this.handler.codeActions.doCodeAction(null,[Gt.SourceFixAll])),this.addAction("doCodeAction",t=>this.handler.codeActions.applyCodeAction(t)),this.addAction("codeActions",(t,i)=>this.handler.codeActions.getCurrentCodeActions(t,i)),this.addAction("quickfixes",t=>this.handler.codeActions.getCurrentCodeActions(t,[Gt.QuickFix])),this.addAction("codeLensAction",()=>this.handler.codeLens.doAction()),this.addAction("doQuickfix",()=>this.handler.codeActions.doQuickfix()),this.addAction("search",(...t)=>this.handler.refactor.search(t)),this.addAction("saveRefactor",t=>this.handler.refactor.save(t)),this.addAction("refactor",()=>this.handler.refactor.doRefactor()),this.addAction("runCommand",(...t)=>this.handler.commands.runCommand(...t)),this.addAction("repeatCommand",()=>this.handler.commands.repeat()),this.addAction("installExtensions",(...t)=>Wt.installExtensions(t)),this.addAction("updateExtensions",t=>Wt.updateExtensions(t)),this.addAction("extensionStats",()=>Wt.getExtensionStates()),this.addAction("loadedExtensions",()=>Wt.manager.loadedExtensions),this.addAction("watchExtension",t=>Wt.manager.watchExtension(t)),this.addAction("activeExtension",t=>Wt.manager.activate(t)),this.addAction("deactivateExtension",t=>Wt.manager.deactivate(t)),this.addAction("reloadExtension",t=>Wt.manager.reloadExtension(t)),this.addAction("toggleExtension",t=>Wt.manager.toggleExtension(t)),this.addAction("uninstallExtension",(...t)=>Wt.manager.uninstallExtensions(t)),this.addAction("getCurrentFunctionSymbol",()=>this.handler.symbols.getCurrentFunctionSymbol()),this.addAction("showOutline",t=>this.handler.symbols.showOutline(t)),this.addAction("hideOutline",()=>this.handler.symbols.hideOutline()),this.addAction("getWordEdit",()=>this.handler.rename.getWordEdit()),this.addAction("addCommand",t=>this.handler.commands.addVimCommand(t)),this.addAction("addRanges",t=>this.cursors.addRanges(t)),this.addAction("currentWorkspacePath",()=>b.rootPath),this.addAction("selectCurrentPlaceholder",t=>mi.selectCurrentPlaceholder(!!t)),this.addAction("codeActionRange",(t,i,r)=>this.handler.codeActions.codeActionRange(t,i,r)),this.addAction("incomingCalls",t=>this.handler.callHierarchy.getIncoming(t)),this.addAction("outgoingCalls",t=>this.handler.callHierarchy.getOutgoing(t)),this.addAction("showIncomingCalls",()=>this.handler.callHierarchy.showCallHierarchyTree("incoming")),this.addAction("showOutgoingCalls",()=>this.handler.callHierarchy.showCallHierarchyTree("outgoing")),this.addAction("showSuperTypes",()=>this.handler.typeHierarchy.showTypeHierarchyTree("supertypes")),this.addAction("showSubTypes",()=>this.handler.typeHierarchy.showTypeHierarchyTree("subtypes")),this.addAction("inspectSemanticToken",()=>this.handler.semanticHighlighter.inspectSemanticToken()),this.addAction("semanticHighlight",()=>this.handler.semanticHighlighter.highlightCurrent()),this.addAction("showSemanticHighlightInfo",()=>this.handler.semanticHighlighter.showHighlightInfo())}get workspace(){return b}get completion(){return Ym}addAction(e,t,i){if(this.actions.has(e))throw new Error(`Action ${e} already exists`);this.actions.set(e,t),i&&this.actions.set(i,t)}async init(e){if(this.initialized)return;this.initialized=!0;let{nvim:t}=this;await Wt.init(e),await b.init(k),t.setVar("coc_workspace_initialized",!0,!0),mi.init(),Sn.init(),_i.init(),Ym.init(),hi.init(),this.handler=new Rb(t),this.disposables.push(this.handler),Wi.registerLists(),await Wt.activateExtensions(),b.configurations.flushConfigurations(),t.pauseNotification(),t.setVar("coc_service_initialized",1,!0),t.call("coc#util#do_autocmd",["CocNvimInit"],!0),t.resumeNotification(!1,!0),wve.info(`coc.nvim initialized with node: ${process.version} after`,Date.now()-ge(global.__starttime,Date.now())),this.ready=!0,await _.fire("ready",[])}get isReady(){return this.ready}hasAction(e){return this.actions.has(e)}async cocAction(e,...t){let i=this.actions.get(e);if(!i)throw new Error(`Action "${e}" not exist`);return await Promise.resolve(i.apply(null,t))}getHandler(){return this.handler}dispose(){Y(this.disposables),Wt.dispose(),Wi.dispose(),b.dispose(),k.dispose(),_i.dispose(),Sn.dispose(),mi.dispose(),ie.dispose(),Ym.dispose(),hi.dispose()}}});var vI={};qs(vI,{default:()=>Cve,pathReplace:()=>bQ});function bQ(n){if(St(n)){let e=A.file;A.file=t=>(t=t.replace(/\\/g,"/"),Object.keys(n).forEach(i=>t=t.replace(new RegExp("^"+i),n[i])),e(t))}}var mQ,Zo,xve,bI,yI,Cve,wI=D(()=>{"use strict";mQ=sr(M8());Je();Re();Ce();fQ();Jt();Xe();ce();pe();Y1();Zo=J("attach"),xve=["installExtensions","updateExtensions"],bI=ur.parse(Rl),yI=[];Cve=(n,e=!1)=>{let t=(0,mQ.attach)(n,J("node-client"),e);t.setVar("coc_process_pid",process.pid,!0),t.setClientInfo("coc",{major:bI.major,minor:bI.minor,patch:bI.patch},"remote",{},{});let i=new _b(t),r=_.on("ready",()=>{r.dispose();for(let[s,a]of yI)i.cocAction(s,...a).catch(l=>{console.error(`Error on notification "${s}": ${l}`),Zo.error(`Error on notification ${s}`,l)});yI=[]});t.on("notification",async(s,a)=>{switch(s){case"VimEnter":{bQ(a[0]),await i.init(a[1]);break}case"Log":{Zo.debug("Vim log",...a);break}case"TaskExit":case"TaskStderr":case"TaskStdout":case"GlobalChange":case"PromptInsert":case"InputChar":case"MenuInput":case"OptionSet":case"PromptKeyPress":case"FloatBtnClick":case"CompleteStop":case"PumInsert":Zo.trace("Event: ",s,...a),await _.fire(s,a);break;case"CocAutocmd":Zo.trace("Notification autocmd:",...a),await _.fire(a[0],a.slice(1));break;case"redraw":break;default:try{if(Zo.info("receive notification:",s,a),!i.isReady){yI.push([s,a]);return}await i.cocAction(s,...a)}catch(l){console.error(`Error on notification "${s}": ${xr(l)}`),Zo.error(`Error on notification ${s}`,l)}}});let o=mS("Request",3e3);return t.on("request",async(s,a,l)=>{o.start(s);try{if(_.requesting=!0,s=="CocAutocmd")Zo.trace("Request autocmd:",...a),await _.fire(a[0],a.slice(1)),l.send(void 0);else if(!i.isReady&&!xve.includes(s))Zo.warn(`Plugin not ready on request "${s}"`,a),l.send("Plugin not ready",!0);else{Zo.info("Request action:",s,a);let u=await i.cocAction(s,...a);l.send(u)}_.requesting=!1}catch(u){_.requesting=!1,l.send(xr(u),!0),Zo.error("Request error:",s,a,u)}o.stop()}),i}});if(global.__isMain){Object.defineProperty(console,"log",{value(){e&&e.info(...arguments)}});let{createLogger:n}=(Ce(),Jo(B0)),e=n("server");process.on("uncaughtException",function(i){let r="Uncaught exception: "+i.message;console.error(r),e.error("uncaughtException",i.stack)}),process.on("unhandledRejection",function(i,r){if(i instanceof Error)if(typeof i.code=="number"){let o="Unhandled response error "+i.code+" from language server: "+i.message;i.data!=null?console.error(o,i.data):console.error(o)}else console.error("UnhandledRejection: "+i.message+` +`+i.stack);else console.error("UnhandledRejection: "+i);e.error("unhandledRejection ",r,i)});let t=(wI(),Jo(vI)).default;t({reader:process.stdin,writer:process.stdout})}else{let n=q1(),e=(Ce(),Jo(B0)).logger,t=(wI(),Jo(vI)).default;module.exports={attach:t,exports:n,logger:e,loadExtension:(i,r)=>n.extensions.manager.load(i,r)}} +/*! + * bytes + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015 Jed Watson + * MIT Licensed + */ +/*! + * content-disposition + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ diff --git a/pack/acp/opt/coc.nvim/doc/coc-api.txt b/pack/acp/opt/coc.nvim/doc/coc-api.txt new file mode 100644 index 0000000..a8e0706 --- /dev/null +++ b/pack/acp/opt/coc.nvim/doc/coc-api.txt @@ -0,0 +1,414 @@ +*coc-api.txt* NodeJS client for Vim & Neovim. + +CONTENTS + +Vim sources |coc-api-vim-source| +Extension introduction |coc-api-intro| +Extension package json |coc-api-json| +Single file extensions |coc-api-single| +Create custom Extensions |coc-api-extension| +Debug extensions |coc-api-debug| + +============================================================================== + +This is the guide for extend coc.nvim by create vim completion sources and +coc.nvim extensions. + +------------------------------------------------------------------------------ +VIM SOURCES *coc-api-vim-source* + +During initialization, coc.nvim searches vim's |runtimepath| for file pattern +`autoload/coc/source/${name}.vim`, matched files would be loaded as vim +completion sources. + +Note: LSP completion features like `TextEdit`, `additionalTextEdits`, +`command` are not supported by vim sources, use the NodeJS API +`languages.registerCompletionItemProvider` for LSP completion. + +For example, create a file `autoload/coc/source/email.vim` inside your plugin +folder. With code: +> + " vim source for emails + function! coc#source#email#init() abort + return { + \ 'priority': 9, + \ 'shortcut': 'Email', + \ 'triggerCharacters': ['@'] + \} + endfunction + + function! coc#source#email#complete(option, cb) abort + let items = ['foo@gmail.com', 'bar@yahoo.com'] + call a:cb(items) + endfunction +< +`init` and `complete` are required functions for vim sources, error message +will be shown when not exists. + +Source option:~ + + The source option object is returned by `coc#source#{name}#init` + function, available properties: + + โ€ข shortcut: The shortcut characters shown in popup menu, first three + characters from the source name would be used when not exists. + โ€ข priority: The priority of source, default to `9`. + โ€ข filetypes: Array of filetype names this source should be triggered + by. Available for all filetypes when not exists. + โ€ข firstMatch: When is truthy value, only the completion item that has the + first letter matching the user input will be shown. + โ€ข triggerCharacters: Trigger characters for this source, default to `[]`. + โ€ข triggerOnly: The source should only be triggered by trigger characters, + when trigger characters is false or empty, the source would only be + triggered by api |coc#start()|. + โ€ข isSnippet: All complete items returned by `complete` are snippets, + which would have snippet indicator text added to the label in popup + menu. The "isSnippet" property of completion item override this + option. + + All options are optional. + +Source configurations:~ + + Vim sources register |coc-configuration| for allow the user to customize the + source behavior. + + โ€ข `coc.source.${name}.enable` Enable the source, default to `true`. + โ€ข `coc.source.${name}.disableSyntaxes` Disabled syntax names when trigger + completion. + โ€ข `coc.source.${name}.firstMatch` Default to "firstMatch" of source option. + โ€ข `coc.source.${name}.priority` Default to "priority" of source option. + โ€ข `coc.source.${name}.shortcut` Default to "shortcut" of source option. + โ€ข `coc.source.${name}.filetypes` Default to "filetypes" of source option. + +Complete function:~ + + The complete function is called with complete option as the first argument + and a callback function as the second argument, the callback function should + be called with list of complete item or `v:null` synchronously or + asynchronously. + + Note: synchronously compute complete items blocks vim's operation. + Note: Error during completion is not thrown, use |:CocOpenLog| to check the + error log. + + Complete option have following properties: + + โ€ข bufnr: Current buffer number. + โ€ข line: Content line when trigger completion. + โ€ข col: Start col of completion, start col of the keywords before cursor by + default, 0 based. + โ€ข input: Input text between start col and curosr col. + โ€ข filetype: Filetype of current buffer. + โ€ข filepath: Fullpath of current buffer. + โ€ข changedtick: b:changedtick value when trigger completion. + โ€ข triggerCharacter: The character which trigger the completion, could be + empty string. + โ€ข colnr: Cursor col when trigger completion, 1 based. + โ€ข linenr: Line number of curosr, 1 based. + + Complete items extends vim's |complete-items| with the following properties: + + โ€ข deprecated: The complete item would be rendered with strike through + highlight when truthy. + โ€ข labelDetails: Additional details for a completion item label, which have + optional `detail` and/or `description` text. + โ€ข sortText: A string that should be used when comparing this item with other + items, word is used when not exists. + โ€ข filterText: A string that should be used when filtering a set of + complete items, word is used when not exists. + โ€ข insertText: The text to insert, could be snippet text, word is used when + not exists. + โ€ข isSnippet: The text to insert is snippet when is truthy value, when + truthy and `on_complete` not provided by vim source, the `insertText` is + expanded as textmate snippet when confirm completion. + โ€ข documentation: Array of `Documentation`, which provide `filetype` and + `content` text to be displayed in preview window. + + Only the "word" property is mandatory for complete items. + +Optional functions:~ + + The vim source could provide some optional functions which would be invoked + by coc.nvim: + + โ€ข `coc#source#{name}#get_startcol(option)` Used to alter the start col of + completion, the returned col must <= current curosr col. + โ€ข `coc#source#{name}#on_complete(item)` Called with selected complete item + when user confirm the completion by |coc#pum#confirm()| or + |coc#_select_confirm()|. Normally used for apply nesessary edits to the + buffer. + โ€ข `coc#source#{name}#on_enter(option)` Called on |BufEnter| with option + contains: + โ€ข bufnr: The buffer number. + โ€ข uri: The uri text of buffer. + โ€ข languageId: The mapped filetype of buffer, see |coc-document-filetype|. + โ€ข `coc#source#{name}#refresh()` Called when the user trigger refresh action + for the source. + +------------------------------------------------------------------------------ +EXTENSION INTRODUCTION *coc-api-intro* + +Every extension of coc.nvim has a JavaScript entry file, that file is loaded +by NodeJS API `vm.runInContext` with an identical global context (like iframe +in browser). + +The JavaScript entry file should be a CommonJS module with `activate` method +exported, and `require('coc.nvim')` can be used to access modules exported by +coc.nvim, for example: +> + const {window} = require('coc.nvim') + exports.activate = async context => { + window.showInformationMessage('extension activated') + } +< +When `exports.deactivate` is exported from the JavaScript entry file as a +function, it would be called on extension deactivate. + +Limitation of extension context:~ + +Some methods/properties provided by NodeJS can't be used inside extension +context, including: + + โ€ข `process.reallyExit()` + โ€ข `process.abort()` + โ€ข `process.setuid()` + โ€ข `process.setgid()` + โ€ข `process.setgroups()` + โ€ข `process._fatalException()` + โ€ข `process.exit()` + โ€ข `process.kill()` + โ€ข `process.umask()` Could only be used to get umask value. + โ€ข `process.chdir()` Could be called, but no effect at all. + +Some globals may can't be accessed directly, for example `TextDecoder`, +`TextEncoder`, use `globalThis` like `globalThis.TextDecoder` to access them. + + *coc-api-console* + +Stdin and stdout of the NodeJS process is used for communication between vim +and NodeJS process, use the methods related to `process.stdin` and +`process.stdout` may cause unexpected behavior. However, some methods of +`console` are provided for debugging purpose. + +Messages from `console` of extension would be redirected to the log file +|:CocOpenLog|. Available methods: + + โ€ข `debug(...args: any[])` Write debug message to the log file. + โ€ข `log(...args: any[])` Write info message to the log file. + โ€ข `info(...args: any[])` Write info message to the log file. + โ€ข `error(...args: any[])` Write error message to the log file. + โ€ข `warn(...args: any[])` Write warning message to the log file. + +Check the full NodeJS API interfaces at: +https://github.com/neoclide/coc.nvim/blob/master/typings/index.d.ts + +------------------------------------------------------------------------------ +EXTENSION PACKAGE JSON *coc-api-json* + +The package.json file inside extension root defines the meta data of the +extension. For example: +> + { + "name": "coc-my-extension", + "version": "1.0.0", + "main": "lib/index.js", + "engines": { + "coc": "^0.0.82" + }, + "activationEvents": [ + "*", + ], + "contributes": { + "rootPatterns": [{ + "filetype": "myfiletype", + "patterns": [ + "project_root.json" + ] + }], + "commands": [{ + "title": "My command", + "category": "myextension", + "id": "myextension.myCommand" + }], + "configuration": { + "type": "object", + "properties": { + "myextension.enable": { + "type": "boolean", + "default": true, + "scope": "resource", + "description": "Enable running of my extension." + } + } + } + } + } +< +Required properties of package.json: + + โ€ข name: The unique name of extension, to publish the extension, the name + should not be taken by exists packages at https://www.npmjs.com/ + โ€ข version: The semver version of extension. + โ€ข engines: Should have `coc` property with minimal required coc.nvim version. + +The `main` property contains the relative filepath of the javascript entry +file, `index.js` would be used when not exists. + +The `activationEvents` property tell coc.nvim when to activate the extension, +when the property not exists or `*` is included, the extension would be +activated during coc.nvim initialize. Other possible events: + + โ€ข onLanguage: Activate the extension when document of specific languageId + exists, ex: `"onLanguage:vim"` activate the extension when there's buffer with + languageId as vim loaded. + โ€ข onFileSystem: Activate the extension when document with custom schema + loaded, ex: `"onFileSystem:fugitive"` activate the extension when there's + buffer with schema `fugitive` loaded. + โ€ข onCommand: activate the extension when specific command invoked by user, + ex: `"onCommand:tsserver.reloadProjects"` + โ€ข workspaceContains: activate the extension when the glob pattern match one + of the file in current workspace folder, ex: + `"workspaceContains:**/package.json"` + +Optional `contributes` property contains the meta data that contributed to +coc.nvim, inclduing: + + โ€ข rootPatterns: The patterns to resolve |coc-workspace-folders| for + associated filetype. + โ€ข commands: List of commands with `id` and `title` that can be invoked by + |:CocCommand|. + โ€ข configuration: Contains `properties` object or a list of configurations + that each one provide `properties` objects which define the configuration + properties contributed by this extension. + +The `contributes` property could also contains other properties that used by +other extensions, for example: the `jsonValidation` property could be used by +coc-json. + +It's recommended to install `coc-json` for json intellisense support. + +------------------------------------------------------------------------------ +SINGLE FILE EXTENSIONS *coc-api-single* + +The easiest way to access the NodeJS API is make use of single file +extensions. + +All Javascript files that ends with `.js` inside the folder "coc-extensions" +under |g:coc_config_home| are considered as coc extensions. + +The javascript files would be loaded during coc.nvim initialize by default. + +To contribute extension meta data, create file `${name}.json` aside with +`${name}.js`, the json file works the same as package.json of extension +|coc-api-json|, except that only `activationEvents` and `contributes` +properties are used. + +Single file extensions can't be managed by extensions list. + +------------------------------------------------------------------------------ +CREATE CUSTOM EXTENSIONS *coc-api-extension* + +To make an extension installable by |:CocInstall|, the easiest way is make use +of https://github.com/fannheyward/create-coc-extension. Simply run command +> + npm init coc-extension [extension-name] +< +or +> + yarn create coc-extension [extension-name] +< +in terminal and you will be prompted for create a javascript/typescript +extension step by step. + +To manually create an extension, follow these step: + + โ€ข Create an empty folder and goto that folder. + โ€ข Create the package.json file |coc-api-json|. + โ€ข Create a javascript file with name `index.js` and write code. + โ€ข Add the created folder to your vim's runtimepath by + add `set runtimepath^=/path/to/folder` in your vimrc. + +Recommended steps: + + โ€ข Install types of NodeJS and coc.nvim by terminal command + `yarn install @types/node@14.14 coc.nvim` in extension folder. + โ€ข Bundle the javascript files when using multiple node dependencies by + esbuild to save the time of installation. A typical build script looks + like: +> + async function start() { + await require('esbuild').build({ + entryPoints: ['src/index.ts'], + bundle: true, + minify: process.env.NODE_ENV === 'production', + sourcemap: process.env.NODE_ENV === 'development', + mainFields: ['module', 'main'], + external: ['coc.nvim'], + platform: 'node', + target: 'node14.14', + outfile: 'lib/index.js' + }) + } + + start().catch(e => { + console.error(e) + }) +< +------------------------------------------------------------------------------ +DEBUG EXTENSIONS *coc-api-debug* + +Uncaught errors:~ + +When an uncaught error raised on the NodeJS process, the error message would +be send to vim through stderr, and echoed by vim (unless +|g:coc_disable_uncaught_error| is enabeld). + +The error messages are not stored by vim's message history, use +|:CocPrintErrors| to show previous errors. + +When error happens on the vim side, the promise would be rejected when sending +request to vim, for notifications, vim would send `nvim_error_event` to the +NodeJS process, and the node-client would create error log for it. + +Use the log file:~ + +โ€ข Configure `NVIM_COC_LOG_LEVEL` to `trace` in vimrc: + `let $NVIM_COC_LOG_LEVEL='trace'` +โ€ข Configure `NVIM_COC_LOG_FILE` to a fixed in vimrc: + `let $NVIM_COC_LOG_FILE=/tmp/coc.log`, otherwise it would be different for + each vim instance. +โ€ข Use |coc-api-console| to add console statements in javascript/typescript +code and compile the extension when needed. +โ€ข Tail the log file by `tail` command and make the issue happen. + +Add source map support:~ + +When the javascript code is bundled by esbuild, it would be useful to have +correct source map support for the error stack. + +โ€ข Install global source-map-support by `npm install -g source-map-support` +โ€ข Find out the npm root by `npm root -g` +โ€ข Load source-map-support with coc.nvim by append arguments to node in vimrc: + `let g:coc_node_args = ['-r', '/path/to/npm/root/source-map-support/register']` + Repalce the part `/path/to/npm/root` with result from `npm root -g` terminal + command. + +Note: the source-map-support module slows down the coc.nvim initialization. + +Debug javascript code in chrome:~ + +โ€ข Add `let g:coc_node_args = ['--nolazy', '--inspect-brk=5858']` +โ€ข Open vim and you will get the error message indicate that the debugger is + listening. +โ€ข Open Chrome browser with url chrome://inspect/#devices, configure + the `Target discovery settings` and you will get the remote target to + inspect. +โ€ข Click the inspect link to open the devtools. +โ€ข Click the sources label to debug javascript code. + +Other debugger clients can be used as well, see: +https://nodejs.org/en/docs/guides/debugging-getting-started/ + +============================================================================== +vim:tw=78:sta:noet:ts=8:sts=0:ft=help:fen: diff --git a/pack/acp/opt/coc.nvim/doc/coc-config.txt b/pack/acp/opt/coc.nvim/doc/coc-config.txt new file mode 100644 index 0000000..d09d8ec --- /dev/null +++ b/pack/acp/opt/coc.nvim/doc/coc-config.txt @@ -0,0 +1,1793 @@ +*coc-config.txt* NodeJS client for Vim & Neovim. + +CONTENTS + +Call hierarchy |coc-config-callHierarchy| +CodeLens |coc-config-codeLens| +Colors |coc-config-colors| +Completion |coc-config-suggest| +Cursors |coc-config-cursors| +Diagnostics |coc-config-diagnostic| +Dialog |coc-config-dialog| +Document highlight |coc-config-documentHighlight| +Float factory |coc-config-floatFactory| +Hover |coc-config-hover| +Http |coc-config-http| +Inlay hint |coc-config-inlayHint| +Links |coc-config-links| +List |coc-config-list| +Notification |coc-config-notification| +Npm |coc-config-npm| +Outline |coc-config-outline| +Pull diagnostics |coc-config-pullDiagnostic| +Refactor |coc-config-refactor| +Semantic tokens |coc-config-semanticTokens| +Signature |coc-config-signature| +Tree |coc-config-tree| +Type hierarchy |coc-config-typeHierarchy| +Workspace |coc-config-workspace| +Preferences |coc-config-preferences| +Float |coc-config-float| +Language server |coc-config-languageserver| + +============================================================================== +BUILTIN CONFIGURATIONS *coc-config* + +Builtin configurations of coc.nvim, it's recommended to use `coc-json` +extension for completion and validation support. + +------------------------------------------------------------------------------ +CallHierarchy~ + *coc-config-callHierarchy* +"callHierarchy.enableTooltip" *coc-config-callHierarchy-enableTooltip* + + Enable tooltip to show relative filepath of call hierarchy item. + + Scope: `application`, default: `true` + +"callHierarchy.openCommand" *coc-config-callHierarchy-openCommand* + + Open command for call hierarchy tree view. + + Scope: `application`, default: `"edit"` + +"callHierarchy.splitCommand" *coc-config-callHierarchy-splitCommand* + + Window split command used by call hierarchy tree view. + + Scope: `application`, default: `"botright 30vs"` + +------------------------------------------------------------------------------ +CodeLens~ + *coc-config-codeLens* +"codeLens.enable" *coc-config-codeLens-enable* + + Enable codeLens feature, require neovim with set virtual text feature. + + Scope: `language-overridable`, default: `false` + +"codeLens.position" *coc-config-codeLens-position* + + Position of codeLens, requires nvim >= 0.6.0. + + Scope: `resource`, default: `"top"` + +"codeLens.separator" *coc-config-codeLens-separator* + + Separator text for codeLens in virtual text. + + Scope: `resource`, default: `""` + +"codeLens.subseparator" *coc-config-codeLens-subseparator* + + Subseparator between codeLenses in virtual text. + + Scope: `resource`, default: `" | "` + +------------------------------------------------------------------------------ +Colors~ + *coc-config-colors* +"colors.enable" *coc-config-colors-enable* + + Enable colors highlight feature, for termainal vim, 'termguicolors' + option should be enabled and the termainal support gui colors. + + Scope: `language-overridable`, default: `false` + +"colors.highlightPriority" *coc-config-colors-highlightPriority* + + Priority for colors highlights, works on vim8 and neovim >= 0.6.0. + + Scope: `application`, default: `1000` + +------------------------------------------------------------------------------ +Cursors~ + *coc-config-cursors* +"cursors.cancelKey" *coc-config-cursors-cancelKey* + + Key used for cancel cursors session. + + Scope: `application`, default: `""` + +"cursors.nextKey" *coc-config-cursors-nextKey* + + Key used for jump to next cursors position. + + Scope: `application`, default: `""` + +"cursors.previousKey" *coc-config-cursors-previousKey* + + Key used for jump to previous cursors position. + + Scope: `application`, default: `""` + +"cursors.wrapscan" *coc-config-cursors-wrapscan* + + Searches wrap around the first or last cursors range. + + Scope: `application`, default: `true` + +------------------------------------------------------------------------------ +Diagnostic~ + *coc-config-diagnostic* +"diagnostic.autoRefresh" *coc-config-diagnostic-autoRefresh* + + Enable automatically refresh diagnostics, use diagnosticRefresh action + when it's disabled. + + Scope: `language-overridable`, default: `true` + +"diagnostic.checkCurrentLine" *coc-config-diagnostic-checkCurrentLine* + + When enabled, show all diagnostics of current line if there are none at + the current position. + + Scope: `language-overridable`, default: `false` + +"diagnostic.displayByAle" *coc-config-diagnostic-displayByAle* + + Use Ale for display diagnostics in vim, will disable coc for display + diagnostics, restart required on change. + + Scope: `language-overridable`, default: `false` + +"diagnostic.enable" *coc-config-diagnostic-enable* + + Set to false to disable diagnostic display. + + Scope: `language-overridable`, default: `true` + +"diagnostic.enableHighlightLineNumber" *coc-config-diagnostic-enableHighlightLineNumber* + + Enable highlighting line numbers for diagnostics, only works with neovim. + + Scope: `application`, default: `true` + +"diagnostic.enableMessage" *coc-config-diagnostic-enableMessage* + + When to enable show messages of diagnostics. + + Scope: `application`, default: `"always"` + +"diagnostic.enableSign" *coc-config-diagnostic-enableSign* + + Enable signs for diagnostics. + + Scope: `language-overridable`, default: `true` + +"diagnostic.errorSign" *coc-config-diagnostic-errorSign* + + Text of error sign. + + Scope: `application`, default: `">>"` + +"diagnostic.filetypeMap" *coc-config-diagnostic-filetypeMap* + + A map between buffer filetype and the filetype assigned to diagnostics. + To syntax highlight diagnostics with their parent buffer type use `" + default": "bufferType"`. + + Scope: `application`, default: `{}` + +"diagnostic.floatConfig" *coc-config-diagnostic-floatConfig* + + Configuration of floating window/popup for diagnostic messages, see + |coc-config-float|. + + Scope: `application`, default: `null` + +"diagnostic.format" *coc-config-diagnostic-format* + + Define the diagnostic format that shown in float window or echoed, + available parts: source, code, severity, message. + + Scope: `language-overridable`, default: `"%message (%source%code)"` + +"diagnostic.highlightLimit" *coc-config-diagnostic-highlightLimit* + + Limit count for highlighted diagnostics, too many diagnostic highlights + could make vim stop responding. + + Scope: `language-overridable`, default: `1000` + +"diagnostic.highlightPriority" *coc-config-diagnostic-highlightPriority* + + Priority for diagnostic highlights, works on vim8 and neovim >= 0.6.0. + + Scope: `language-overridable`, default: `4096` + +"diagnostic.hintSign" *coc-config-diagnostic-hintSign* + + Text of hint sign. + + Scope: `application`, default: `">>"` + +"diagnostic.infoSign" *coc-config-diagnostic-infoSign* + + Text of info sign. + + Scope: `application`, default: `">>"` + +"diagnostic.level" *coc-config-diagnostic-level* + + Used for filter diagnostics by diagnostic severity. + + Scope: `resource`, default: `"hint"` + +"diagnostic.locationlistLevel" *coc-config-diagnostic-locationlistLevel* + + Filter diagnostics in locationlist. + + Scope: `language-overridable`, default: `null` + +"diagnostic.locationlistUpdate" *coc-config-diagnostic-locationlistUpdate* + + Update locationlist on diagnostics change, only works with locationlist + opened by :CocDiagnostics command and first window of associated buffer. + + Scope: `language-overridable`, default: `true` + +"diagnostic.messageDelay" *coc-config-diagnostic-messageDelay* + + How long to wait (in milliseconds) before displaying the diagnostic + message with echo or float + + Scope: `application`, default: `200` + +"diagnostic.messageLevel" *coc-config-diagnostic-messageLevel* + + Filter diagnostic message in float window/popup. + + Scope: `language-overridable`, default: `null` + +"diagnostic.messageTarget" *coc-config-diagnostic-messageTarget* + + Diagnostic message target. + + Scope: `language-overridable`, default: `"float"` + +"diagnostic.refreshOnInsertMode" *coc-config-diagnostic-refreshOnInsertMode* + + Enable diagnostic refresh on insert mode, default false. + + Scope: `language-overridable`, default: `false` + +"diagnostic.separateRelatedInformationAsDiagnostics" *coc-config-diagnostic-separateRelatedInformationAsDiagnostics* + + Separate related information as diagnostics. + + Scope: `application`, default: `false` + +"diagnostic.showDeprecated" *coc-config-diagnostic-showDeprecated* + + Show diagnostics with deprecated tag. + + Scope: `language-overridable`, default: `true` + +"diagnostic.showUnused" *coc-config-diagnostic-showUnused* + + Show diagnostics with unused tag, affects highlight, sign, virtual + text , message. + + Scope: `language-overridable`, default: `true` + +"diagnostic.signLevel" *coc-config-diagnostic-signLevel* + + Filter diagnostics displayed in signcolumn. + + Scope: `language-overridable`, default: `null` + +"diagnostic.signPriority" *coc-config-diagnostic-signPriority* + + Priority of diagnostic signs. + + Scope: `resource`, default: `10` + +"diagnostic.virtualText" *coc-config-diagnostic-virtualText* + + Use virtual text to display diagnostics, requires neovim >= 0.5.0 or + vim >= 9.0.0067. + + Scope: `language-overridable`, default: `false` + +"diagnostic.virtualTextAlign" *coc-config-diagnostic-virtualTextAlign* + + Position of virtual text. Vim9 only. + + Scope: `language-overridable`, default: `"after"` + +"diagnostic.virtualTextCurrentLineOnly" *coc-config-diagnostic-virtualTextCurrentLineOnly* + + Only show virtualText diagnostic on current cursor line. + + Scope: `language-overridable`, default: `true` + +"diagnostic.virtualTextFormat" *coc-config-diagnostic-virtualTextFormat* + + Define the virtual text diagnostic format, available parts: source, code + , severity, message. + + Scope: `language-overridable`, default: `"%message"` + +"diagnostic.virtualTextLevel" *coc-config-diagnostic-virtualTextLevel* + + Filter diagnostic message in virtual text by level. + + Scope: `language-overridable`, default: `null` + +"diagnostic.virtualTextLimitInOneLine" *coc-config-diagnostic-virtualTextLimitInOneLine* + + The maximum number of diagnostic messages to disaply in one line. + + Scope: `language-overridable`, default: `999` + +"diagnostic.virtualTextLineSeparator" *coc-config-diagnostic-virtualTextLineSeparator* + + The text that will mark a line end from the diagnostic message. + + Scope: `language-overridable`, default: `" \ "` + +"diagnostic.virtualTextLines" *coc-config-diagnostic-virtualTextLines* + + The number of non empty lines from a diagnostic to display. + + Scope: `language-overridable`, default: `3` + +"diagnostic.virtualTextPrefix" *coc-config-diagnostic-virtualTextPrefix* + + The prefix added virtual text diagnostics. + + Scope: `language-overridable`, default: `" "` + +"diagnostic.virtualTextWinCol" *coc-config-diagnostic-virtualTextWinCol* + + Window column number to align virtual text, neovim only. + + Scope: `language-overridable`, default: `null` + +"diagnostic.warningSign" *coc-config-diagnostic-warningSign* + + Text of warning sign. + + Scope: `application`, default: `"โš "` + +------------------------------------------------------------------------------ +Dialog~ + *coc-config-dialog* +"dialog.confirmKey" *coc-config-dialog-confirmKey* + + Confirm key for confirm selection used by menu and picker, you can + always use to cancel. + + Scope: `application`, default: `""` + +"dialog.floatBorderHighlight" *coc-config-dialog-floatBorderHighlight* + + Highlight group for border of dialog window/popup, use 'CocFloating' + when not specified. + + Scope: `application`, default: `null` + +"dialog.floatHighlight" *coc-config-dialog-floatHighlight* + + Highlight group for dialog window/popup, use 'CocFloating' when not + specified. + + Scope: `application`, default: `null` + +"dialog.maxHeight" *coc-config-dialog-maxHeight* + + Maximum height of dialog window, for quickpick, it's content window's + height. + + Scope: `application`, default: `30` + +"dialog.maxWidth" *coc-config-dialog-maxWidth* + + Maximum width of dialog window. + + Scope: `application`, default: `80` + +"dialog.pickerButtonShortcut" *coc-config-dialog-pickerButtonShortcut* + + Show shortcut in buttons of picker dialog window/popup, used when dialog + .pickerButtons is true. + + Scope: `application`, default: `true` + +"dialog.pickerButtons" *coc-config-dialog-pickerButtons* + + Show buttons for picker dialog window/popup. + + Scope: `application`, default: `true` + +"dialog.rounded" *coc-config-dialog-rounded* + + use rounded border for dialog window. + + Scope: `application`, default: `true` + +"dialog.shortcutHighlight" *coc-config-dialog-shortcutHighlight* + + Highlight group for shortcut character in menu dialog. + + Scope: `application`, default: `"MoreMsg"` + +------------------------------------------------------------------------------ +DocumentHighlight~ + *coc-config-documentHighlight* +"documentHighlight.priority" *coc-config-documentHighlight-priority* + + Match priority used by document highlight, see ':h matchadd'. + + Scope: `resource`, default: `-1` + +"documentHighlight.timeout" *coc-config-documentHighlight-timeout* + + Timeout for document highlight, in milliseconds. + + Scope: `resource`, default: `300` + +------------------------------------------------------------------------------ +FloatFactory~ + *coc-config-floatFactory* +"floatFactory.floatConfig" *coc-config-floatFactory-floatConfig* + + Configure default float window/popup style created by float factory + (created around cursor and automatically closed), properties of + |coc-config-float| are used. + + Scope: `application`, default: `null` + +------------------------------------------------------------------------------ +Hover~ + *coc-config-hover* +"hover.autoHide" *coc-config-hover-autoHide* + + Automatically hide hover float window on CursorMove or InsertEnter. + + Scope: `application`, default: `true` + +"hover.floatConfig" *coc-config-hover-floatConfig* + + Configuration of floating window/popup for hover documents, see + |coc-config-float|. + + Scope: `application`, default: `null` + +"hover.previewMaxHeight" *coc-config-hover-previewMaxHeight* + + Max height of preview window for hover. + + Scope: `resource`, default: `12` + +"hover.target" *coc-config-hover-target* + + Target to show hover information, could be `float`, `echo` or + `preview`. + + Scope: `resource`, default: `float` + +------------------------------------------------------------------------------ +Http proxy~ + *coc-config-http* +"http.proxy" *coc-config-http-proxy* + + The proxy setting to use. If not set, will be inherited from the ` + http_proxy` and `https_proxy` environment variables. + + Scope: `application`, default: `""` + +"http.proxyAuthorization" *coc-config-http-proxyAuthorization* + + The value to send as the `Proxy-Authorization` header for every network + request. + + Scope: `application`, default: `null` + +"http.proxyCA" *coc-config-http-proxyCA* + + CA (file) to use as Certificate Authority> + + Scope: `application`, default: `null` + +"http.proxyStrictSSL" *coc-config-http-proxyStrictSSL* + + Controls whether the proxy server certificate should be verified + against the list of supplied CAs. + + Scope: `application`, default: `true` + +------------------------------------------------------------------------------ +InlayHint~ + *coc-config-inlayHint* +"inlayHint.enable" *coc-config-inlayHint-enable* + + Enable inlay hint support. + + Scope: `language-overridable`, default: `true` + +"inlayHint.enableParameter" *coc-config-inlayHint-enableParameter* + + Enable inlay hints for parameters. + + Scope: `language-overridable`, default: `true` + +"inlayHint.display" *coc-config-inlayHint-display* + + Display inlay hints. Toggle with :CocCommand document.toggleInlayHint + + Scope: `language-overridable`, default: `true` + +"inlayHint.parameterSeparator" *coc-config-inlayHint-parameterSeparator* + + Separator for parameter inlay hint, neovim only. + + Scope: `language-overridable`, default: `""` + +"inlayHint.refreshOnInsertMode" *coc-config-inlayHint-refreshOnInsertMode* + + Refresh inlayHints on insert mode. + + Scope: `language-overridable`, default: `false` + +"inlayHint.subSeparator" *coc-config-inlayHint-subSeparator* + + Separator for chained inlay hints, neovim only. + + Scope: `language-overridable`, default: `" "` + +"inlayHint.typeSeparator" *coc-config-inlayHint-typeSeparator* + + Separator for type inlay hint, neovim only. + + Scope: `language-overridable`, default: `""` + +------------------------------------------------------------------------------ +Links~ + *coc-config-links* +"links.enable" *coc-config-links-enable* + + Enable document links. + + Scope: `language-overridable`, default: `true` + +"links.highlight" *coc-config-links-highlight* + + Use CocLink highlight group to highlight links. + + Scope: `application`, default: `false` + +"links.tooltip" *coc-config-links-tooltip* + + Show tooltip of link under cursor on CursorHold. + + Scope: `application`, default: `false` + +------------------------------------------------------------------------------ +List~ + *coc-config-list* +"list.alignColumns" *coc-config-list-alignColumns* + + Whether to align lists in columns. + + Scope: `application`, default: `false` + +"list.extendedSearchMode" *coc-config-list-extendedSearchMode* + + Enable extended search mode which allows multiple search patterns + delimited by spaces. + + Scope: `application`, default: `true` + +"list.floatPreview" *coc-config-list-floatPreview* + + Enable preview with float window/popup, default: `false`. + + Scope: `application`, default: `false` + +"list.height" *coc-config-list-height* + + Height of split list window. + + Scope: `application`, default: `10` + +"list.indicator" *coc-config-list-indicator* + + The character used as first character in prompt line. + + Scope: `application`, default: `">"` + +"list.insertMappings" *coc-config-list-insertMappings* + + Custom keymappings on insert mode. + + Scope: `application`, default: `{}` + +"list.interactiveDebounceTime" *coc-config-list-interactiveDebounceTime* + + Debounce time for input change on interactive mode. + + Scope: `application`, default: `100` + +"list.limitLines" *coc-config-list-limitLines* + + Limit lines for list buffer. + + Scope: `application`, default: `null` + +"list.maxPreviewHeight" *coc-config-list-maxPreviewHeight* + + Max height for preview window of list. + + Scope: `application`, default: `12` + +"list.menuAction" *coc-config-list-menuAction* + + Use menu picker instead of confirm() for choose action. + + Scope: `application`, default: `false` + +"list.nextKeymap" *coc-config-list-nextKeymap* + + Key used for select next line on insert mode. + + Scope: `application`, default: `""` + +"list.normalMappings" *coc-config-list-normalMappings* + + Custom keymappings on normal mode. + + Scope: `application`, default: `{}` + +"list.previewHighlightGroup" *coc-config-list-previewHighlightGroup* + + Highlight group used for highlight the range in preview window. + + Scope: `application`, default: `"Search"` + +"list.previewSplitRight" *coc-config-list-previewSplitRight* + + Use vsplit for preview window. + + Scope: `application`, default: `false` + +"list.previewToplineOffset" *coc-config-list-previewToplineOffset* + + Topline offset for list previews + + Scope: `application`, default: `3` + +"list.previewToplineStyle" *coc-config-list-previewToplineStyle* + + Topline style for list previews, could be "offset" or "middle". + + Scope: `application`, default: `"offset"` + +"list.previousKeymap" *coc-config-list-previousKeymap* + + Key used for select previous line on insert mode. + + Scope: `application`, default: `""` + +"list.selectedSignText" *coc-config-list-selectedSignText* + + Sign text for selected lines. + + Scope: `application`, default: `"*"` + +"list.signOffset" *coc-config-list-signOffset* + + Sign offset of list, should be different from other plugins. + + Scope: `application`, default: `900` + +"list.smartCase" *coc-config-list-smartCase* + + Use smartcase match for fuzzy match and strict match, --ignore-case + will be ignored, may not affect interactive list. + + Scope: `application`, default: `false` + +"list.source.diagnostics.includeCode" *coc-config-list-source-diagnostics-includeCode* + + Whether to show the diagnostic code in the list. + + Scope: `application`, default: `true` + +"list.source.diagnostics.pathFormat" *coc-config-list-source-diagnostics-pathFormat* + + Decide how the filepath is shown in the list. + + Scope: `application`, default: `"full"` + +"list.source.outline.ctagsFiletypes" *coc-config-list-source-outline-ctagsFiletypes* + + Filetypes that should use ctags for outline instead of language server. + + Scope: `application`, default: `[]` + +"list.source.symbols.excludes" *coc-config-list-source-symbols-excludes* + + Patterns of minimatch for filepath to exclude from symbols list. + + Scope: `application`, default: `[]` + +"list.statusLineSegments" *coc-config-list-statusLineSegments* + + An array of statusline segments that will be used to draw the status + line for list windows. + + Scope: `application`. + +------------------------------------------------------------------------------ +Notification~ + *coc-config-notification* +"notification.border" *coc-config-notification-border* + + Enable rounded border for notification windows. + + Scope: `application`, default: `true` + +"notification.disabledProgressSources" *coc-config-notification-disabledProgressSources* + + Sources that should be disabled for message progress, use * to disable + all progresses. + + Scope: `application`, default: `[]` + +"notification.focusable" *coc-config-notification-focusable* + + Enable focus by user actions (wincmds, mouse events), neovim only. + + Scope: `application`, default: `true` + +"notification.highlightGroup" *coc-config-notification-highlightGroup* + + Highlight group of notification dialog. + + Scope: `application`, default: `"Normal"` + +"notification.marginRight" *coc-config-notification-marginRight* + + Margin right to the right of editor window. + + Scope: `application`, default: `10` + +"notification.maxHeight" *coc-config-notification-maxHeight* + + Maximum content height of notification dialog. + + Scope: `application`, default: `10` + +"notification.maxWidth" *coc-config-notification-maxWidth* + + Maximum content width of notification dialog. + + Scope: `application`, default: `60` + +"notification.minProgressWidth" *coc-config-notification-minProgressWidth* + + Minimal with of progress notification. + + Scope: `application`, default: `30` + +"notification.statusLineProgress" *coc-config-notification-statusLineProgress* + + Show progress notification in status line, instead of use float + window/popup. + +"notification.timeout" *coc-config-notification-timeout* + + Timeout for auto close notifications, in milliseconds. + + Scope: `application`, default: `10000` + +"notification.winblend" *coc-config-notification-winblend* + + Winblend option of notification window, neovim only. + + Scope: `application`, default: `30` + +------------------------------------------------------------------------------ +Npm~ + *coc-config-npm* +"npm.binPath" *coc-config-npm-binPath* + + Command or absolute path to npm or yarn for global extension + install/uninstall. + + Scope: `application`, default: `"npm"` + +------------------------------------------------------------------------------ +Outline~ + *coc-config-outline* +"outline.autoPreview" *coc-config-outline-autoPreview* + + Enable auto preview on cursor move. + + Scope: `application`, default: `false` + +"outline.autoWidth" *coc-config-outline-autoWidth* + + Automatically increase window width to avoid wrapped lines. + + Scope: `application`, default: `true` + +"outline.checkBufferSwitch" *coc-config-outline-checkBufferSwitch* + + Recreate outline view after user changed to another buffer on current + tab. + + Scope: `application`, default: `true` + +"outline.codeActionKinds" *coc-config-outline-codeActionKinds* + + Filter code actions in actions menu by kinds. + + Scope: `application`, default: `["","quickfix","refactor"]` + +"outline.detailAsDescription" *coc-config-outline-detailAsDescription* + + Show detail as description aside with label, when false detail will be + shown in tooltip on cursor hold. + + Scope: `application`, default: `true` + +"outline.expandLevel" *coc-config-outline-expandLevel* + + Expand level of tree nodes. + + Scope: `application`, default: `1` + +"outline.followCursor" *coc-config-outline-followCursor* + + Reveal item in outline tree on cursor hold. + + Scope: `application`, default: `true` + +"outline.keepWindow" *coc-config-outline-keepWindow* + + Jump back to original window after outline is shown. + + Scope: `application`, default: `false` + +"outline.previewBorder" *coc-config-outline-previewBorder* + + Use border for preview window. + + Scope: `application`, default: `true` + +"outline.previewBorderHighlightGroup" *coc-config-outline-previewBorderHighlightGroup* + + Border highlight group of preview window. + + Scope: `application`, default: `"Normal"` + +"outline.previewBorderRounded" *coc-config-outline-previewBorderRounded* + + Use rounded border for preview window. + + Scope: `application`, default: `false` + +"outline.previewHighlightGroup" *coc-config-outline-previewHighlightGroup* + + Highlight group of preview window. + + Scope: `application`, default: `"Normal"` + +"outline.previewMaxWidth" *coc-config-outline-previewMaxWidth* + + Max width of preview window. + + Scope: `application`, default: `80` + +"outline.previewWinblend" *coc-config-outline-previewWinblend* + + Enables pseudo-transparency by set 'winblend' option of window, neovim + only. + + Scope: `application`, default: `0` + +"outline.showLineNumber" *coc-config-outline-showLineNumber* + + Show line number of symbols. + + Scope: `application`, default: `true` + +"outline.sortBy" *coc-config-outline-sortBy* + + Default sort method for symbols outline. + + Scope: `application`, default: `"category"` + +"outline.splitCommand" *coc-config-outline-splitCommand* + + Window split command used by outline. + + Scope: `application`, default: `"botright 30vs"` + +"outline.switchSortKey" *coc-config-outline-switchSortKey* + + The key used to switch sort method for symbols provider of current + tree view. + + Scope: `application`, default: `""` + +"outline.togglePreviewKey" *coc-config-outline-togglePreviewKey* + + The key used to toggle auto preview feature. + + Scope: `application`, default: `"p"` + +------------------------------------------------------------------------------ +PullDiagnostic~ + *coc-config-pullDiagnostic* +"pullDiagnostic.ignored" *coc-config-pullDiagnostic-ignored* + + Minimatch patterns to match full filepath that should be ignored for + pullDiagnostic. + + Scope: `application`, default: `[]` + +"pullDiagnostic.onChange" *coc-config-pullDiagnostic-onChange* + + Whether to pull for diagnostics on document change. + + Scope: `language-overridable`, default: `true` + +"pullDiagnostic.onSave" *coc-config-pullDiagnostic-onSave* + + Whether to pull for diagnostics on document save. + + Scope: `language-overridable`, default: `false` + +"pullDiagnostic.workspace" *coc-config-pullDiagnostic-workspace* + + Whether to pull for workspace diagnostics when possible. + + Scope: `application`, default: `true` + +------------------------------------------------------------------------------ +Refactor~ + *coc-config-refactor* +"refactor.afterContext" *coc-config-refactor-afterContext* + + Print num lines of trailing context after each match. + + Scope: `application`, default: `3` + +"refactor.beforeContext" *coc-config-refactor-beforeContext* + + Print num lines of leading context before each match. + + Scope: `application`, default: `3` + +"refactor.openCommand" *coc-config-refactor-openCommand* + + Open command for refactor window. + + Scope: `application`, default: `"vsplit"` + +"refactor.saveToFile" *coc-config-refactor-saveToFile* + + Save changed buffer to file when write refactor buffer with ':noa wa' + command. + + Scope: `application`, default: `true` + +"refactor.showMenu" *coc-config-refactor-showMenu* + + Refactor buffer local mapping to bring up menu for this chunk. + + Scope: `application`, default: `""` + +------------------------------------------------------------------------------ +SemanticTokens~ + *coc-config-semanticTokens* +"semanticTokens.combinedModifiers" *coc-config-semanticTokens-combinedModifiers* + + Semantic token modifiers that should have highlight combined with + syntax highlights. + + Scope: `language-overridable`, default: `["deprecated"]` + +"semanticTokens.enable" *coc-config-semanticTokens-enable* + + Enable semantic tokens support. + + Scope: `language-overridable`, default: `false` + +"semanticTokens.highlightPriority" *coc-config-semanticTokens-highlightPriority* + + Priority for semantic tokens highlight. + + Scope: `language-overridable`, default: `2048` + +"semanticTokens.incrementTypes" *coc-config-semanticTokens-incrementTypes* + + Semantic token types that should increase highlight when insert at the + start and end position of token. + + Scope: `language-overridable`, default: `["variable","string","parameter"]` + +------------------------------------------------------------------------------ +Signature~ + *coc-config-signature* +"signature.enable" *coc-config-signature-enable* + + Enable show signature help when trigger character typed. + + Scope: `language-overridable`, default: `true` + +"signature.floatConfig" *coc-config-signature-floatConfig* + + Configuration of floating window/popup for signature documents, see + |coc-config-float|. + + Scope: `application`, default: `null` + +"signature.hideOnTextChange" *coc-config-signature-hideOnTextChange* + + Hide signature float window when text changed on insert mode. + + Scope: `language-overridable`, default: `false` + +"signature.preferShownAbove" *coc-config-signature-preferShownAbove* + + Show signature help float window above cursor when possible, require + restart coc.nvim on change. + + Scope: `application`, default: `true` + +"signature.target" *coc-config-signature-target* + + Target of signature help, use float when possible by default. + + Scope: `language-overridable`, default: `"float"` + +"signature.triggerSignatureWait" *coc-config-signature-triggerSignatureWait* + + Timeout for trigger signature help, in milliseconds. + + Scope: `language-overridable`, default: `500` + +------------------------------------------------------------------------------ +Snippet~ + *coc-config-snippet* +"snippet.highlight" *coc-config-snippet-highlight* + + Use highlight group 'CocSnippetVisual' to highlight placeholders with + same index of current one. + + Scope: `resource`, default: `false` + +"snippet.nextPlaceholderOnDelete" *coc-config-snippet-nextPlaceholderOnDelete* + + Automatically jump to the next placeholder when the current one is + completely deleted. + + Scope: `resource`, default: `false` + +"snippet.statusText" *coc-config-snippet-statusText* + + Text shown in statusline to indicate snippet session is activated. + + Scope: `application`, default: `"SNIP"` + +------------------------------------------------------------------------------ +Suggest~ + *coc-config-suggest* +"suggest.acceptSuggestionOnCommitCharacter" *coc-config-suggest-acceptSuggestionOnCommitCharacter* + + Controls whether suggestions should be accepted on commit characters. + For example, in JavaScript, the semi-colon (`;`) can be a commit + character that accepts a suggestion and types that character. + + Scope: `language-overridable`, default: `false` + +"suggest.asciiCharactersOnly" *coc-config-suggest-asciiCharactersOnly* + + Trigger suggest with ASCII characters only. + + Scope: `language-overridable`, default: `false` + +"suggest.asciiMatch" *coc-config-suggest-asciiMatch* + + Convert unicode characters to ascii for match. + + Scope: `language-overridable`, default: `true` + +"suggest.autoTrigger" *coc-config-suggest-autoTrigger* + + How should completion be triggered, could be `"always"`, `"trigger"` + or `"none"`. + + Scope: `language-overridable`, default: `"always"` + +"suggest.completionItemKindLabels" *coc-config-suggest-completionItemKindLabels* + + Set custom labels to completion items' kinds. + Default value: > + { + "text": "v", + "method": "f", + "function": "f", + "constructor": "f", + "field": "m", + "variable": "v", + "class": "C", + "interface": "I", + "module": "M", + "property": "m", + "unit": "U", + "value": "v", + "enum": "E", + "keyword": "k", + "snippet": "S", + "color": "v", + "file": "F", + "reference": "r", + "folder": "F", + "enumMember": "m", + "constant": "v", + "struct": "S", + "event": "E", + "operator": "O", + "typeParameter": "T", + "default": "" + } +< + Scope: `application` + +"suggest.defaultSortMethod" *coc-config-suggest-defaultSortMethod* + + Default sorting behavior when trigger is empty, could be `"length"`, + `"alphabetical"` or `"none"`. + + Scope: `language-overridable`, default: `"length"` + +"suggest.detailField" *coc-config-suggest-detailField* + + Where to show the detail text of CompleteItem from language server. + + Scope: `application`, default: `"preview"` + +"suggest.enableFloat" *coc-config-suggest-enableFloat* + + Enable float window with documentation aside with popupmenu. + + Scope: `language-overridable`, default: `true` + +"suggest.enablePreselect" *coc-config-suggest-enablePreselect* + + Enable preselect feature, works when |coc-config-suggest-noselect| is + false. + + Scope: `application`, default: `true` + +"suggest.filterGraceful" *coc-config-suggest-filterGraceful* + + Controls whether filtering and sorting suggestions accounts for small + typos. + + Scope: `language-overridable`, default: `true` + +"suggest.filterOnBackspace" *coc-config-suggest-filterOnBackspace* + + Filter complete items on backspace. + + Scope: `language-overridable`, default: `true` + +"suggest.floatConfig" *coc-config-suggest-floatConfig* + + Configure style of popup menu and documentation window for completion, + see |coc-config-float|. + + Note: some properties not work, including: "title", "focusable", + "close" and "maxHeight" (use 'pumheight' option for maximum height of + popup menu). + + Note: "maxWidth" not works for popup menu, use + |coc-config-suggest-labelMaxLength| instead. + +"suggest.formatItems" *coc-config-suggest-formatItems* + + Items shown in popup menu in order. + + Scope: `application`, default: `["abbr","menu","kind","shortcut"]` + +"suggest.highPrioritySourceLimit" *coc-config-suggest-highPrioritySourceLimit* + + Max items count for source priority bigger than or equal to 90. + + Scope: `language-overridable`, default: `null` + +"suggest.insertMode" *coc-config-suggest-insertMode* + + Controls whether words are overwritten when accepting completions. + + Scope: `language-overridable`, default: `โ€œreplace"` + +"suggest.ignoreRegexps" *coc-config-suggest-ignoreRegexps* + + Regexps to ignore when trigger suggest. + + Scope: `language-overridable`, default: `[]` + +"suggest.invalidInsertCharacters" *coc-config-suggest-invalidInsertCharacters* + + Invalid character for strip valid word when inserting text of complete + item. + + Scope: `application`, default: `["\r","\n"]` + +"suggest.labelMaxLength" *coc-config-suggest-labelMaxLength* + + Max length of abbr that shown as label of complete item. + + Scope: `application`, default: `200` + +"suggest.languageSourcePriority" *coc-config-suggest-languageSourcePriority* + + Priority of language sources. + + Scope: `language-overridable`, default: `99` + +"suggest.localityBonus" *coc-config-suggest-localityBonus* + + Boost suggestions that appear closer to the cursor position. + + Scope: `language-overridable`, default: `true` + +"suggest.lowPrioritySourceLimit" *coc-config-suggest-lowPrioritySourceLimit* + + Max items count for source priority lower than 90. + + Scope: `language-overridable`, default: `null` + +"suggest.maxCompleteItemCount" *coc-config-suggest-maxCompleteItemCount* + + Maximum number of complete items shown in vim. + + Scope: `language-overridable`, default: `256` + +"suggest.minTriggerInputLength" *coc-config-suggest-minTriggerInputLength* + + Minimal input length for trigger completion. + + Scope: `language-overridable`, default: `1` + +"suggest.noselect" *coc-config-suggest-noselect* + + Not make vim select first item on popupmenu shown. + + Scope: `application`, default: `false` + +"suggest.preferCompleteThanJumpPlaceholder" *coc-config-suggest-preferCompleteThanJumpPlaceholder* + + Confirm completion instead of jump to next placeholder when completion + is activated. + + Scope: `resource`, default: `false` + +"suggest.pumFloatConfig" *coc-config-suggest-pumFloatConfig* + + Configure style of popup menu, |coc-config-suggest-floatConfig| is + used when not specified, see |coc-config-float|. + + Available properties: "border", "rounded", "highlight", + "borderhighlight", "winblend" and "shadow". + + Note: 'winblend' option is used for custom popup menu when not + configured, use 'pumwidth' for minimal width of popup menu and + 'pumheight' for maximum height of popup menu. + + Scope: `application`, default: `null` + +"suggest.removeDuplicateItems" *coc-config-suggest-removeDuplicateItems* + + Remove completion items with duplicated word for all sources, snippet + items are excluded. + + Scope: `language-overridable`, default: `false` + +"suggest.reversePumAboveCursor" *coc-config-suggest-reversePumAboveCursor* + + Reverse order of complete items when pum shown above cursor. + + Scope: `application`, default: `false` + +"suggest.selection" *coc-config-suggest-selection* + + Controls how suggestions are pre-selected when showing the suggest list. + + Scope: `application`, default: `"first"` + +"suggest.snippetIndicator" *coc-config-suggest-snippetIndicator* + + The character used in abbr of complete item to indicate the item could + be expand as snippet. + + Scope: `application`, default: `"~"` + +"suggest.snippetsSupport" *coc-config-suggest-snippetsSupport* + + Set to false to disable snippets support of completion. + + Scope: `language-overridable`, default: `true` + +"suggest.timeout" *coc-config-suggest-timeout* + + Timeout for completion, in milliseconds. + + Scope: `language-overridable`, default: `5000` + +"suggest.triggerAfterInsertEnter" *coc-config-suggest-triggerAfterInsertEnter* + + Trigger completion after InsertEnter, |coc-config-suggest-autoTrigger| + should be 'always' to enable this option + + Scope: `language-overridable`, default: `false` + +"suggest.triggerCompletionWait" *coc-config-suggest-triggerCompletionWait* + + Wait time between text change and completion start, cancel completion + when text changed during wait. + + Scope: `language-overridable`, default: `0` + +"suggest.virtualText" *coc-config-suggest-virtualText* + + Show virtual text for insert word of selected item, requires + neovim >= 0.5.0 or vim >= 9.0.0067. + + Scope: `application`, default: `false` + +------------------------------------------------------------------------------ +Tree~ + *coc-config-tree* +"tree.openedIcon" *coc-config-tree-openedIcon* + + Opened icon of tree view. + + Scope: `application`, default: `"-"` + +"tree.closedIcon" *coc-config-tree-closedIcon* + + Closed icon of tree view. + + Scope: `application`, default: `"+"` + +"tree.key.actions" *coc-config-tree-key-actions* + + Trigger key to invoke actions. + + Scope: `application`, default: `""` + +"tree.key.activeFilter" *coc-config-tree-key-activeFilter* + + Trigger key active filter. + + Scope: `application`, default: `"f"` + +"tree.key.close" *coc-config-tree-key-close* + + Trigger key to dispose the tree and close tree window. + + Scope: `application`, default: `""` + +"tree.key.collapseAll" *coc-config-tree-key-collapseAll* + + Trigger key to collapse all tree node. + + Scope: `application`, default: `"M"` + +"tree.key.invoke" *coc-config-tree-key-invoke* + + Trigger key to invoke default command of current node or selection. + + Scope: `application`, default: `""` + +"tree.key.selectNext" *coc-config-tree-key-selectNext* + + Trigger key to select next item during filter. + + Scope: `application`, default: `""` + +"tree.key.selectPrevious" *coc-config-tree-key-selectPrevious* + + Trigger key to select previous item during filter. + + Scope: `application`, default: `""` + +"tree.key.toggle" *coc-config-tree-key-toggle* + + Trigger key to toggle expand state of tree node, does nothing with leaf + node. + + Scope: `application`, default: `"t"` + +"tree.key.toggleSelection" *coc-config-tree-key-toggleSelection* + + Trigger key to select/unselect item. + + Scope: `application`, default: `""` + +------------------------------------------------------------------------------ +TypeHierarchy~ + *coc-config-typeHierarchy* +"typeHierarchy.enableTooltip" *coc-config-typeHierarchy-enableTooltip* + + Enable tooltip to show relative filepath of type hierarchy item. + + Scope: `application`, default: `true` + +"typeHierarchy.openCommand" *coc-config-typeHierarchy-openCommand* + + Open command for type hierarchy tree view. + + Scope: `application`, default: `"edit"` + +"typeHierarchy.splitCommand" *coc-config-typeHierarchy-splitCommand* + + Window split command used by type hierarchy tree view. + + Scope: `application`, default: `"botright 30vs"` + +------------------------------------------------------------------------------ +Workspace~ + *coc-config-workspace* +"workspace.rootPatterns" *coc-config-workspace-rootPatterns* + + Root patterns to resolve workspaceFolder from parent folders of opened + files, resolved from up to down. + + Scope: `application`, default: `[".git",".hg",".projections.json"]` + +"workspace.bottomUpFiletypes" *coc-config-workspace-bottomUpFiletypes* + + Filetypes that should have workspace folder should resolved from base + directory of file, or ["*"] for any filetype. + + Scope: `application`, default: `[]` + +"workspace.ignoredFiletypes" *coc-config-workspace-ignoredFiletypes* + + Filetypes that should be ignored for workspace folder resolve. + + Scope: `resource`, default: `[]` + +"workspace.ignoredFolders" *coc-config-workspace-ignoredFolders* + + List of folders that should not be resolved as workspace folder, + environment variables and minimatch patterns can be used. + + Scope: `application`, default: `["$HOME"]` + +"workspace.openOutputCommand" *coc-config-workspace-openOutputCommand* + + Command used to open output channel. + + Scope: `resource`, default: `"vs"` + +"workspace.openResourceCommand" *coc-config-workspace-openResourceCommand* + + Command to open files that not loaded, load files as hidden buffers + when empty. + + Scope: `application`, default: `"tab drop"` + +"workspace.workspaceFolderCheckCwd" *coc-config-workspace-workspaceFolderCheckCwd* + + Whether the current working directory should be used first when + checking patterns match for workspace folder. + + Scope: `application`, default: `true` + +"workspace.workspaceFolderFallbackCwd" *coc-config-workspace-workspaceFolderFallbackCwd* + + Use current working directory as workspace folder when no root + patterns resolved. + + Scope: `application`, default: `true` + +------------------------------------------------------------------------------ +Preferences~ + *coc-config-preferences* +"coc.preferences.bracketEnterImprove" *coc-preferences-bracketEnterImprove* + + Improve enter inside bracket `<> {} [] ()` by add new empty line below + and place cursor to it. Works with `coc#on_enter()` + + Scope: `language-overridable`, default: `true` + +"coc.preferences.currentFunctionSymbolAutoUpdate" *coc-preferences-currentFunctionSymbolAutoUpdate* + + Automatically update the value of b:coc_current_function on CursorHold + event + + Scope: `language-overridable`, default: `false` + +"coc.preferences.enableLinkedEditing" *coc-preferences-enableLinkedEditing* + + Enable linked editing support. + + Scope: `language-overridable`, default: `false` + +"coc.preferences.enableMarkdown" *coc-preferences-enableMarkdown* + + Tell the language server that markdown text format is supported, note + that markdown text may not rendered as expected. + + Scope: `application`, default: `true` + +"coc.preferences.enableMessageDialog" *coc-preferences-enableMessageDialog* + + Enable messages shown in notification dialog. + + Scope: `application`, default: `false` + +"coc.preferences.excludeImageLinksInMarkdownDocument" *coc-preferences-excludeImageLinksInMarkdownDocument* + + Exclude image links from markdown text in float window. + + Scope: `application`, default: `true` + +"coc.preferences.enableGFMBreaksInMarkdownDocument" *coc-preferences-enableGFMBreaksInmakrdownDocument* + + Exclude GFM breaks in markdown document. + + Scope: `application`, default: `true` + +"coc.preferences.extensionUpdateCheck" *coc-preferences-extensionUpdateCheck* + + Interval for check extension update, could be "daily", "weekly" or + "never" + + Scope: `application`, default: `"never"` + +"coc.preferences.floatActions" *coc-preferences-floatActions* + + Set to false to disable float/popup support for actions menu. + + Scope: `application`, default: `true` + +"coc.preferences.formatOnSave" *coc-preferences-formatOnSave* + + Set to true to enable formatting on save. + + Scope: `language-overridable`, default: `false` + +"coc.preferences.formatOnSaveTimeout" *coc-preferences-formatOnSaveTimeout* + + How long before the format command run on save will time out. + + Scope: `language-overridable`, default: `200` + +"coc.preferences.formatOnType" *coc-preferences-formatOnType* + + Set to true to enable formatting on typing + + Scope: `language-overridable`, default: `false` + +"coc.preferences.jumpCommand" *coc-preferences-jumpCommand* + + Command used for location jump, like goto definition, goto references + etc. Can be also a custom command that gives file as an argument. + + Scope: `application`, default: `"edit"` + +"coc.preferences.maxFileSize" *coc-preferences-maxFileSize* + + Maximum file size in bytes that coc.nvim should handle, default + '10MB'. + + Scope: `application`, default: `"10MB"` + +"coc.preferences.messageLevel" *coc-preferences-messageLevel* + + Message level for filter echoed messages, could be 'more', 'warning' + and 'error' + + Scope: `application`, default: `"more"` + +"coc.preferences.promptInput" *coc-preferences-promptInput* + + Use prompt buffer in float window for user input. + + Scope: `application`, default: `true` + +"coc.preferences.renameFillCurrent" *coc-preferences-renameFillCurrent* + + Disable to stop Refactor-Rename float/popup window from populating + with old name in the New Name field. + + Scope: `application`, default: `true` + +"coc.preferences.silentAutoupdate" *coc-preferences-silentAutoupdate* + + Not open split window with update status when performing auto update. + + Scope: `application`, default: `true` + +"coc.preferences.useQuickfixForLocations" *coc-preferences-useQuickfixForLocations* + + Use vim's quickfix list for jump locations, need restart on change. + + Scope: `application`, default: `false` + +"coc.preferences.watchmanPath" *coc-preferences-watchmanPath* + + executable path for https://facebook.github.io/watchman/, detected + from $PATH by default + + Scope: `application`, default: `null` + +"coc.preferences.willSaveHandlerTimeout" *coc-preferences-willSaveHandlerTimeout* + + Will save handler timeout. + + Scope: `application`, default: `500` + +------------------------------------------------------------------------------ +Float configuration~ + *coc-config-float* + +Used by `suggest.floatConfig`, `diagnostic.floatConfig`, +`signature.floatConfig` and `hover.floatConfig`, following properties are +supported: + + - "border": Change to `true` to enable border. + - "rounded": Use rounded borders when border is `true`. + - "highlight": Background highlight group of float window, default: + `"CocFloating"`. + - "title": Title text used by float window, default: `""`. + - "borderhighlight": Border highlight group of float window, default: + `"CocFloating"`. + - "close": Set to `true` to draw close icon. + - "maxWidth": Maximum width of float window, contains border. + - "maxHeight": Maximum height of float window, contains border. + - "winblend": Set 'winblend' option of window, neovim only, default: + `0`. + - "focusable": Set to false to make window not focusable, neovim only. + - "shadow": Set to true to enable shadow, neovim only. + +------------------------------------------------------------------------------ +Languageserver~ + *coc-config-languageserver* + + Dictionary of Language Servers, key is the ID of corresponding server, + and value is configuration of languageserver. Default: `{}` + + Properties of languageserver configuration: + + - "enable": Change to `false` to disable that languageserver. + + - "filetypes": Supported filetypes, add * in array for all filetypes. + Note: it's required for start the languageserver, please make sure + your filetype is expected by `:CocCommand document.echoFiletype` command + + - 'maxRestartCount': Maximum restart count when server closed in the + last 3 minutes, default to `4`. + + - "additionalSchemes": Additional URI schemes, default schemes + including file & untitled. + Note: you have to setup vim provide content for custom URI as well. + + - "cwd": Working directory used to start languageserver, vim's cwd is + used by default. + + - "env": Environment variables for child process. + + - "settings": Settings for languageserver, received on server + initialization. + + - "trace.server": Trace level of communication between server and + client that showed with output channel, open output channel by + command `:CocCommand workspace.showOutput` + + - "stdioEncoding": Encoding used for stdio of child process. + + - "initializationOptions": Initialization options passed to + languageserver (it's deprecated) + + - "rootPatterns": Root patterns used to resolve rootPath from current + file. + + - "requireRootPattern": If true, doesn't start server when root + pattern not found. + + - "ignoredRootPaths": Absolute root paths that language server should + not use as rootPath, higher priority than rootPatterns. + + - "disableDynamicRegister": Disable dynamic registerCapability feature + for this languageserver to avoid duplicated feature registration. + + - "disableSnippetCompletion": Disable snippet completion feature for + this languageserver. + + - "disabledFeatures": Disable features for this languageserver, + valid keys: +> + ["completion", "configuration", "workspaceFolders", "diagnostics", + "willSave", "willSaveUntil", "didSaveTextDocument", + "fileSystemWatcher", "hover", "signatureHelp", "definition", + "references", "documentHighlight", "documentSymbol", + "workspaceSymbol", "codeAction", "codeLens", "formatting", + "documentFormatting", "documentRangeFormatting", + "documentOnTypeFormatting", "rename", "documentLink", + "executeCommand", "pullConfiguration", "typeDefinition", + "implementation", "declaration", "color", "foldingRange", + "selectionRange", "progress", "callHierarchy", "linkedEditing", + "fileEvents", "semanticTokens"] +< + - "formatterPriority": Priority of this languageserver's formatter. + + - "revealOutputChannelOn": Configure message level to show the output + channel buffer. + + - "progressOnInitialization": Enable progress report on languageserver + initialize. + +Language server start with command:~ + + Additional fields can be used for a command languageserver: + + - "command": Executable program name in $PATH or absolute path of + executable used for start languageserver. + + - "args": Command line arguments of command. + + - "detached": Detach language server when is true. + + - "shell": Use shell for server process, default: `false` + +Language server start with module:~ + + Additional fields can be used for a languageserver started by node + module: + + - "module": Absolute filepath of Javascript file. + + - "args": Extra arguments used on fork Javascript module. + + - "runtime": Absolute path of node runtime, node runtime of coc.nvim + is used by default. + + - "execArgv": ARGV passed to node on fork, normally used for + debugging, example: `["--nolazy", "--inspect-brk=6045"]` + + - "transport": Transport kind used by server, could be 'ipc', 'stdio', + 'socket' and 'pipe'. 'ipc' is used by default (recommended). + + - "transportPort": Port number used when transport is 'socket'. + +Language server use initialized socket server:~ + + - "port": Port number of socket server. + + - "host": Host of socket server, default to `127.0.0.1`. + +============================================================================== +vim:tw=78:nosta:noet:ts=8:sts=0:ft=help:noet:fen: diff --git a/pack/acp/opt/coc.nvim/doc/coc.txt b/pack/acp/opt/coc.nvim/doc/coc.txt new file mode 100644 index 0000000..cdb18ea --- /dev/null +++ b/pack/acp/opt/coc.nvim/doc/coc.txt @@ -0,0 +1,4137 @@ +*coc-nvim.txt* NodeJS client for Vim & Neovim. + +Version: 0.0.82 +Author: Qiming Zhao + +CONTENTS *coc-contents* + +Introduction |coc-introduction| +Requirements |coc-requirements| +Installation |coc-installation| +Extensions |coc-extensions| +Configuration |coc-configuration| +Floating windows |coc-floating| +LSP features |coc-lsp| + Document |coc-document| + Hover |coc-hover| + Completion |coc-completion| + Diagnostics |coc-diagnostics| + Pull diagnostics |coc-pullDiagnostics| + Locations |coc-locations| + Rename |coc-rename| + Signature help |coc-signature| + Inlay hint |coc-inlayHint| + Format |coc-format| + Code action |coc-code-actions| + Document highlights |coc-document-highlights| + Document colors |coc-document-colors| + Document links |coc-document-links| + Snippets |coc-snippets| + Workspace |coc-workspace| + Cursors |coc-cursors| + Outline |coc-outline| + Call hierarchy |coc-callHierarchy| + Type hierarchy |coc-typeHierarchy| + Semantic highlights |coc-semantic-highlights| + Fold |coc-fold| + Selection range |coc-selection-range| + Code Lens |coc-code-lens| + Linked editing |coc-linked-editing| +Interface |coc-interface| + Key mappings |coc-key-mappings| + Variables |coc-variables| + Buffer variables |coc-buffer-variables| + Global variables |coc-global-variables| + Functions |coc-functions| + Commands |coc-commands| + Autocmds |coc-autocmds| + Highlights |coc-highlights| +Tree |coc-tree| + Tree mappings |coc-tree-mappings| + Tree filter |coc-tree-filter| +List |coc-list| + List command |coc-list-command| + List command options |coc-list-options| + List configuration |coc-list-configuration| + List mappings |coc-list-mappings| + list sources |coc-list-sources| +Dialog |coc-dialog| + Dialog basic |coc-dialog-basic| + Dialog confirm |coc-dialog-confirm| + Dialog input |coc-dialog-input| + Dialog menu |coc-dialog-menu| + Dialog picker |coc-dialog-picker| +Notification |coc-notification| +Statusline integration |coc-status| + Manual |coc-status-manual| + Airline |coc-status-airline| + Lightline |coc-status-lightline| +Create plugins |coc-plugins| +FAQ |coc-faq| +Change log |coc-changelog| + +============================================================================== +INTRODUCTION *coc-introduction* + +Coc.nvim enhances your (Neo)Vim to match the user experience provided by +VSCode through a rich extension ecosystem and implemented the client features +specified by Language Server Protocol (3.17 for now), see |coc-lsp|. + +Some features (like completion) automatically works by default, all of them +can be disabled by |coc-configuration|. + +Some key features:~ + + โ€ข Typescript APIs compatible with both Vim8 and Neovim. + โ€ข Loading VSCode-like extensions |coc-api-extension|. + โ€ข Configuring coc.nvim and its extensions with JSON configuration + |coc-configuration|. + โ€ข Configuring Language Servers that using Language Server Protocol (LSP) + |coc-config-languageserver|. + +It is designed for best possible integration with other Vim plugins. + +Note: coc.nvim doesn't come with support for any specific language. You +will need to install coc.nvim extensions |coc-extensions| or set up the +language server by use |coc-config-languageserver|. + +Note: multiple language servers for same document is allowed, but you should +avoid configure same language server that already used by coc.nvim extension. + +Note: automatic completion plugins can't play nicely together, you can disable +automatic completion of coc.nvim by use `"suggest.autoTrigger": "none"` (or +`"suggest.autoTrigger": "trigger"`) in your |coc-configuration|. + +============================================================================== +REQUIREMENTS *coc-requirements* + +Neovim >= 0.4.0 or Vim >= 8.1.1719. + +NodeJS https://nodejs.org/ >= 14.14.0. + +Yarn https://yarnpkg.com/ required to build coc.nvim from typescript source +code. + +============================================================================== +INSTALLATION *coc-installation* + +If you're using [vim-plug](https://github.com/junegunn/vim-plug), add this to +your `init.vim` or `.vimrc`: > + + Plug 'neoclide/coc.nvim', {'branch': 'release'} +< +And run: > + + :PlugInstall + +For other plugin managers, make sure to use the release branch (unless you +need to build from typescript source code). + +To use Vim's native |packages| on Linux or MaxOS, use script like: > + + #!/bin/sh + # for vim8 + mkdir -p ~/.vim/pack/coc/start + cd ~/.vim/pack/coc/start + curl --fail -L https://github.com/neoclide/coc.nvim/archive/release.tar.gz|tar xzfv - + vim -c 'helptags ~/.vim/pack/coc/start/doc|q' + + # for neovim + mkdir -p ~/.local/share/nvim/site/pack/coc/start + cd ~/.local/share/nvim/site/pack/coc/start + curl --fail -L https://github.com/neoclide/coc.nvim/archive/release.tar.gz|tar xzfv - + nvim -c 'helptags ~/.local/share/nvim/site/pack/coc/start|q' + +when using source code of coc.nvim, you'll have to install +https://yarnpkg.com/ and run `yarn install` in project root of coc.nvim. + +============================================================================== +EXTENSIONS *coc-extensions* + +To provide LSP features of different filetypes, the user have to config +|coc-config-languageserver| or install coc extensions. + +Extensions are more powerful since they could contribute json schemes, +commands, and use middleware methods of languageserver to provide better +results. It's also possible to provide features that beyond LSP. + *coc-extensions-folder* +Extensions are loaded from `"extensions"` folder inside +|coc#util#get_data_home()| and folders in 'runtimepath' when detected. + +Use `let $COC_NO_PLUGINS = '1'` in vimrc to disable the load of extensions. + +See |coc-api-extension| for the guide to create coc.nvim extension. + +Install extensions from git (not recommended):~ + + โ€ข Download the source code. + โ€ข In project root, install dependencies and compile the code by `yarn install` + (needed by most coc extensions). + โ€ข Add the project root to vim's runtimepath by `set runtimepath^=/path/to/project` + +Plugin manager like [vim-plug] can be used as well. + +Note: use coc.nvim extensions from source code requires install dependencies, +which may take huge disk usage. + + *coc-extensions-npm* +Install global extensions from npm (recommended):~ + +Use |:CocInstall| to install coc extensions from vim's command line. + +To make coc.nvim install extensions on startup, use |g:coc_global_extensions|. + +To use package manager other than npm (like `yarn` or `pnpm`), use +|coc-config-npm-binPath|. + +To customize npm registry for coc.nvim add `coc.nvim:registry` in your +`~/.npmrc`, like: +> + coc.nvim:registry=https://registry.mycompany.org/ +< +To customize extension folder, configure |g:coc_data_home|. + +Uninstall global extensions:~ + +Use |:CocUninstall|. + +Update global extensions:~ + +Use |:CocUpdate| or |:CocUpdateSync|. + +To update extensions automatically, config |coc-preferences-extensionUpdateCheck|. + +Manage extensions list:~ + +Use |coc-list-extensions| or |CocAction('extensionStats')| to get list of extensions. + +============================================================================== +CONFIGURATION *coc-configuration* + +The configuration of coc.nvim is stored in file named "coc-settings.json". + +Configuration properties are contributed by coc.nvim itself and coc.nvim +extensions. See |coc-config| for builtin configurations. + +The configuration files are all in JSON format (with comment supported), it's +recommended to enable JSON completion and validation by install the `coc-json` +extension: +> + :CocInstall coc-json +< +To fix the highlight of comment, use: +> + autocmd FileType json syntax match Comment +\/\/.\+$+ +< +in your vimrc. + +Global configuration file:~ + +Command |:CocConfig| will open (create when necessary) a user settings +file in the folder returned by |coc#util#get_config_home()|. + +The user configuration value could be overwritten by API |coc#config()| or +|g:coc_user_config|. + +The global configuration file can be created in another directory by setting +|g:coc_config_home| in your vimrc like: > + + let g:coc_config_home = '/path/to/folder' + +Folder configuration file:~ + +To create a local configuration file for a specific workspace folder, use +|:CocLocalConfig| to create and open `.vim/coc-settings.json` in current +workspace folder. + +Folder configuration would overwrite user configuration. + +Note: the configuration file won't work when the parent folder is not resolved +as workspace folder, it's best practice to start vim inside workspace folder, +see |coc-workspace-folders|. + + *coc-configuration-expand* +Variables expands:~ + +Variables would be expanded in string values of configuration, supported +variables: + + โ€ข `${userHome}` the path of the user's home folder + โ€ข `${cwd}` current working directory of vim. + +You can also reference environment variables through the `${env:name}` syntax +(for example, `${env:USERNAME}`), no expand happens when env not exists. + +Configurations that requires file paths (ex: +|coc-config-workspace-ignoredFolders|) support expand `~` at the beginning of +the filepath to user's home and some additional variables: + + โ€ข `${workspaceFolder}` the current opened file's workspace folder. + โ€ข `${workspaceFolderBasename}` the name of the workspace folder opened in + coc.nvim without any slashes (/). + โ€ข `${file}` the current opened file. + โ€ข `${fileDirname}` the current opened file's dirname. + โ€ข `${fileExtname}` the current opened file's extension. + โ€ข `${fileBasename}` the current opened file's basename + โ€ข `${fileBasenameNoExtension}` the current opened file's basename with no file extension. + + *coc-configuration-scope* +Configuration scope:~ + +A configuration could be one of three different configuration scopes: + + โ€ข `"application"` the configuration could only be used in user configuration + file. + + โ€ข `"resource"` the configuration could be used in user and workspace folder + configuration file. + + โ€ข `"language-overridable"` the configuration could be used in user and + workspace folder configuration file, and can be use used in language scoped + configuration section like `[typescript][json]`. For example: > + + // disable inlay hint for some languages + "[rust][lua][c]": { + "inlayHint.enable": false + } +< +============================================================================== +FLOATING WINDOWS *coc-floating* + +Floating windows/popups are created by |api-floatwin| on neovim or |popupwin| +on vim. + *coc-floating-scroll* +Scroll floating windows:~ + +See |coc#float#has_scroll()| for example. + +Note: use |coc#pum#scroll()| for scroll popup menu. + + *coc-floating-close* +Close floating windows:~ + +To close all floating windows/popups use |coc#float#close_all()| or +|popup_clear()| on vim. Or you can use o on neovim which close all +split windows as well. Or use |popup_clear()| on vim. + +To close single floating window/popup, use |coc#float#close()|. + + *coc-floating-focus* +Focus floating windows:~ + +On neovim, use w (or |(coc-float-jump)|) could focus a floating +window just created (if it's focusable). It's not allowed to focus popups on +vim, unless it's using a terminal buffer. + + *coc-floating-config* +Configure floating windows:~ + +To set custom window options on floating window create, use autocmd +|CocOpenFloat| or |CocOpenFloatPrompt|. + +Related variables: + + โ€ข |g:coc_last_float_win| + โ€ข |g:coc_borderchars| + โ€ข |g:coc_border_joinchars| + โ€ข |g:coc_markdown_disabled_languages| + +Related highlight groups: + + โ€ข |CocFloating| For floating window background. + โ€ข |CocFloatDividingLine| For dividing lines. + โ€ข |CocFloatActive| For active parts. + โ€ข |CocMenuSel| For selected line. + +To customize floating windows used by popup menu, use: + + โ€ข |coc-config-suggest-floatConfig| + โ€ข |coc-config-suggest-pumFloatConfig| + +For floating windows created around cursor, like diagnostics, hover and +signature use |coc-config-floatFactory-floatConfig| for common float +configurations. For further customization, use: + + โ€ข |coc-config-diagnostic-floatConfig| + โ€ข |coc-config-signature-floatConfig| + โ€ข |coc-config-hover-floatConfig| + +For customize dialog windows, use |coc-config-dialog|. +For customize notification windows, use |coc-config-notification|. + +Configure |coc-preferences-enableMessageDialog| to show messages as +notifications (except for the messages of unexpected errors which are always +echoed). + +============================================================================== +LSP FEATURES *coc-lsp* + +Most features of LSP 3.17 are supported, checkout the specification at +https://microsoft.github.io/language-server-protocol/specifications/specification-3-17/ + +Features not supported: + + โ€ข Telemetry. + โ€ข Inline values for debugger. + โ€ข Notebook document. + +LSP features only works with attached documents, see |coc-document-attached|. + +To check exists providers of current buffer, use command +`:CocCommand document.checkBuffer` or API |CocHasProvider()|. + +For historic reason, some features automatically works by default, but some +are not. + +Features automatically work by default:~ + + โ€ข Trigger completion |coc-completion|. + โ€ข Diagnostics refresh |coc-diagnostics|. + โ€ข Pull diagnostics |coc-pullDiagnostics|. + โ€ข Trigger signature help |coc-signature|. + โ€ข Inlay hints |coc-inlayHint| + +Most features could be toggled by |coc-configuration| and some vim variables. + +To disable all features that automatically work, use configuration: +> + "suggest.autoTrigger": "none", + "diagnostic.enable": false, + "pullDiagnostic.onChange": false, + "signature.enable": false, + "inlayHint.enable": false, +< +Features require enabled by configuration:~ + + โ€ข Semantic highlights |coc-semantic-highlights|. + โ€ข Document color highlights |coc-document-colors|. + โ€ข Code lens, |coc-code-lens| + โ€ข Linked editing, |coc-linked-editing|. + โ€ข Format on type, enabled by |coc-preferences-formatOnType| + โ€ข Format on save, enabled by |coc-preferences-formatOnSave|. + +Features requested by user:~ + + โ€ข Locations related (including definitions, references etc.) |coc-locations| + โ€ข Invoke code action |coc-code-actions|. + โ€ข Show call hierarchy tree |coc-callHierarchy|. + โ€ข Show type hierarchy tree |coc-typeHierarchy| + โ€ข Format, range format and on type format |coc-format|. + โ€ข Highlight same symbol ranges |coc-document-highlights|. + โ€ข Outline of document symbols |coc-outline| and |coc-list-symbols|. + โ€ข Show hover information |coc-hover|. + โ€ข Rename symbol under cursor |coc-rename|. + โ€ข Open link under cursor |coc-document-links|. + โ€ข Selection range |coc-selection-range| + โ€ข Create folding ranges |coc-fold|. + +For convenient, some actions have associated |coc-key-mappings| provided. +Prefer |CocAction()| for more options. + +Features triggered by languageserver:~ + + โ€ข Show message notification (use |coc-notification|). + โ€ข Show message request (use |coc-dialog-menu|). + โ€ข Log message notification (use `:CocCommand workspace.showOutput` to show + output). + โ€ข Show document request (opened by vim or your browser for url). + โ€ข Work done progress (use |coc-notification|). + +To make coc.nvim provide LSP features for your languages, checkout +https://github.com/neoclide/coc.nvim/wiki/Language-servers + +To debug issues with languageserver, checkout +https://github.com/neoclide/coc.nvim/wiki/Debug-language-server + +------------------------------------------------------------------------------ +DOCUMENT *coc-document* + +An associated document is created on buffer create, and disposed on buffer +unload. + +Attached document:~ + *coc-document-attached* + +An attached document means coc.nvim synchronize the lines of vim's buffer with +associated document automatically. + +Only attached documents are synchronized with language servers and therefore +LSP features could be provided for the attached buffer. + +The buffer may not be attached by following reasons: + + โ€ข The 'buftype' is neither nor 'acwrite', (could be bypassed by + |b:coc_force_attach|). + โ€ข Buffer variable |b:coc_enabled| is `0`. + โ€ข Byte length of buffer exceed |coc-preferences-maxFileSize|. + โ€ข Buffer is used for command line window. + +Use |CocAction('ensureDocument')| or `:CocCommand document.checkBuffer` to +check attached state of current buffer. + +Filetype map:~ + *coc-document-filetype* + +Some filetypes are mapped to others to match the languageId used by VSCode, +including: + + โ€ข javascript.jsx -> javascriptreact + โ€ข typescript.jsx -> typescriptreact + โ€ข typescript.tsx -> typescriptreact + โ€ข tex -> latex + +Use |g:coc_filetype_map| to create additional filetype maps. + +Use `:CocCommand document.echoFiletype` to echo mapped filetype of current +document. + +Note make sure use mapped filetypes for configurations that expect filetypes. + +------------------------------------------------------------------------------ +HOVER *coc-hover* + +Hover feature provide information at a given text document position, normally +include type information and documentation of current symbol. + +Hover functions:~ + + โ€ข |CocAction('doHover')| Show hover information at cursor position. + โ€ข |CocAction('definitionHover')||| Show hover information with definition + context at cursor position. + โ€ข |CocAction('getHover')| Get hover documentations at cursor position. + + *coc-hover-example* +Hover key-mapping example:~ +> + nnoremap K :call ShowDocumentation() + " Show hover when provider exists, fallback to vim's builtin behavior. + function! ShowDocumentation() + if CocAction('hasProvider', 'hover') + call CocActionAsync('definitionHover') + else + call feedkeys('K', 'in') + endif + endfunction +< +------------------------------------------------------------------------------ +COMPLETION *coc-completion* + +Vim's builtin completion is no longer used. The default completion +now works like in VSCode: + + โ€ข Completion is automatically triggered by default. + โ€ข Selection is enabled by default, use |coc-config-suggest-noselect| to + disable default selection. + โ€ข When selection is enabled and no preselect item exists, the first complete + item will be selected (depends on |coc-config-suggest-selection|). + โ€ข Snippet expand and additional edits only work after confirm completion. + โ€ข 'completeopt' is not used and APIs of builtin popupmenu not work. + + *coc-completion-default* +Default Key-mappings:~ + +To make the new completion work like the builtin completion, without any +additional configuration, the following key-mappings are used when +the {lhs} is not mapped: + +Use , , and to navigate completion list: > + + inoremap coc#pum#visible() ? coc#pum#next(1) : "\" + inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" + inoremap coc#pum#visible() ? coc#pum#next(0) : "\" + inoremap coc#pum#visible() ? coc#pum#prev(0) : "\" +< +Use and to scroll: > + + inoremap coc#pum#visible() ? coc#pum#scroll(1) : "\" + inoremap coc#pum#visible() ? coc#pum#scroll(0) : "\" +< +Use and to cancel and confirm completion: > + + inoremap coc#pum#visible() ? coc#pum#cancel() : "\" + inoremap coc#pum#visible() ? coc#pum#confirm() : "\" + +Note: and are not remapped by coc.nvim. + + *coc-completion-variables* +Related variables:~ + + โ€ข Disable completion for buffer: |b:coc_suggest_disable| + โ€ข Disable specific sources for buffer: |b:coc_disabled_sources| + โ€ข Disable words for completion: |b:coc_suggest_blacklist| + โ€ข Add additional keyword characters: |b:coc_additional_keywords| + + *coc-completion-functions* +Related functions:~ + + โ€ข Trigger completion with options: |coc#start()|. + โ€ข Trigger completion refresh: |coc#refresh()|. + โ€ข Select and confirm completion: |coc#_select_confirm()|. + โ€ข Check if the custom popupmenu is visible: |coc#pum#visible()|. + โ€ข Select the next completion item: |coc#pum#next()|. + โ€ข Select the previous completion item: |coc#pum#prev()|. + โ€ข Cancel completion and reset trigger text: |coc#pum#cancel()|. + โ€ข Confirm completion: |coc#pum#confirm()|. + โ€ข Close the popupmenu only: |coc#pum#stop()|. + โ€ข Get information about the popupmenu: |coc#pum#info()|. + โ€ข Select specific completion item: |coc#pum#select()|. + โ€ข Insert word of selected item and finish completion: |coc#pum#insert()|. + โ€ข Insert one more character from current complete item: |coc#pum#one_more()|. + โ€ข Scroll popupmenu: |coc#pum#scroll()|. + + *coc-completion-customize* +Customize completion:~ + +Use |coc-config-suggest| to change the completion behavior. + +Use 'pumwidth' for configure the minimal width of the popupmenu and 'pumheight' +for its maximum height. + +Related Highlight groups: + |CocPum| for highlight groups of customized pum. + |CocSymbol| for kind icons. + |CocMenuSel| for background highlight of selected item. + +Note: background, border and winblend are configured by +|coc-config-suggest-floatConfig|. + +Example user key-mappings:~ + *coc-completion-example* + +Note: use command `:verbose imap` to check current insert +key-mappings when your key-mappings not work. + +Use and to navigate completion list: > + + function! CheckBackspace() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~ '\s' + endfunction + + " Insert when previous text is space, refresh completion if not. + inoremap + \ coc#pum#visible() ? coc#pum#next(1): + \ CheckBackspace() ? "\" : + \ coc#refresh() + inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" + +Use to trigger completion: > + + if has('nvim') + inoremap coc#refresh() + else + inoremap coc#refresh() + endif +< +Use to confirm completion, use: > + + inoremap coc#pum#visible() ? coc#_select_confirm() : "\" +< +To make to confirm selection of selected complete item or notify coc.nvim +to format on enter, use: > + + inoremap coc#pum#visible() ? coc#_select_confirm() + \: "\u\\=coc#on_enter()\" + +Map for trigger completion, completion confirm, snippet expand and jump +like VSCode: > + + inoremap + \ coc#pum#visible() ? coc#_select_confirm() : + \ coc#expandableOrJumpable() ? + \ "\=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\" : + \ CheckBackspace() ? "\" : + \ coc#refresh() + + function! CheckBackspace() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' + endfunction + + let g:coc_snippet_next = '' +< +Note: the `coc-snippets` extension is required for this to work. + +------------------------------------------------------------------------------ +DIAGNOSTICS SUPPORT *coc-diagnostics* + +Diagnostics of coc.nvim are automatically refreshed to UI by default, checkout +|coc-config-diagnostic| for available configurations. + +Note most language servers only send diagnostics for opened buffers for +performance reason, some lint tools could provide diagnostics for all files in +workspace. + +Note pull diagnostics feature is added in LSP 3.17, which is not available +yet. + + *coc-diagnostics-refresh* +Changes on diagnostics refresh~ + + โ€ข Add highlights for diagnostic ranges and virtual text (when enabled on + neovim or vim >= 9.0.0067), see |coc-highlights-diagnostics|. + โ€ข Add diagnostic signs to 'signcolumn', use `set signcolumn=yes` to avoid + unnecessary UI refresh. + โ€ข Update variable |b:coc_diagnostic_info|. + โ€ข Refresh related |location-list| which was opened by |:CocDiagnostics|. + +Diagnostics are not refreshed when buffer is hidden, and refresh on insert +mode is disabled by default. + +Diagnostics highlights:~ + +See |coc-highlights-diagnostics|. + + *coc-diagnostics-toggle* +Enable and disable diagnostics~ + +Use |coc-config-diagnostic-enable| to toggle diagnostics feature. + +Use |CocAction('diagnosticToggle')| for enable/disable diagnostics feature. + +Use |CocAction('diagnosticToggleBuffer')| for enable/disable diagnostics of +current buffer. + +Show diagnostic messages~ + +Diagnostic messages would be automatically shown/hide when the diagnostics +under cursor position changed (use float window/popup when possible) by +default. + +To manually refresh diagnostics messages, use |(coc-diagnostic-info)| +and |CocAction('diagnosticPreview')|. + + *coc-diagnostics-jump* +Jump between diagnostics~ + +Use key-mappings: + + |(coc-diagnostic-next)| jump to diagnostic after cursor position. + |(coc-diagnostic-prev)| jump to diagnostic before cursor position. + |(coc-diagnostic-next-error)| jump to next error. + |(coc-diagnostic-prev-error)| jump to previous error. + +Check all diagnostics~ + +Use |coc-list-diagnostics| to open |coc-list| with all available diagnostics. + +Use API |CocAction('diagnosticList')| to get list of all diagnostics. + +------------------------------------------------------------------------------ +PULL DIAGNOSTICS SUPPORT *coc-pullDiagnostics* + +Diagnostics are pulled for visible documents when supported by languageserver. +Pull for workspace diagnostics is also enabled by default. + +Document diagnostics are pulled on change by default, and can be +configured to be pulled on save. + +Checkout |coc-config-pullDiagnostic| for related configurations. + +------------------------------------------------------------------------------ +LOCATIONS SUPPORT *coc-locations* + +There're different kinds of locations, including "definitions", "declarations", +"implementations", "typeDefinitions" and "references". + +Key-mappings for invoke locations request~ + + โ€ข |(coc-definition)| + โ€ข |(coc-declaration)| + โ€ข |(coc-implementation)| + โ€ข |(coc-type-definition)| + โ€ข |(coc-references)| + โ€ข |(coc-references-used)| + +Error will be shown when the buffer not attached |coc-document-attached|. +Message will be shown when no result found. + +Location jump behavior~ + +When there's only one location returned, the location is opened by command +specified by |coc-preferences-jumpCommand| ("edit" by default), context mark +is added by |m'|, so you can jump back previous location by . + +When multiple locations returned, |coc-list-location| is opened for preview +and other further actions. + +To use |coc-list-location| for single location as well, use +|coc-locations-api| (instead key-mappings provided by coc.nvim). + +To change default options of |coc-list-location| or use other plugin for +list of locations, see |g:coc_enable_locationlist|. + +To use vim's quickfix for locations, use configuration +|coc-preferences-useQuickfixForLocations|. + +To use vim's tag list for definitions, use |CocTagFunc()|. + + *coc-locations-api* +Related APIs~ + + โ€ข |CocAction('jumpDefinition')| Jump to definition locations. + โ€ข |CocAction('jumpDeclaration')| Jump to declaration locations. + โ€ข |CocAction('jumpImplementation')| Jump to implementation locations. + โ€ข |CocAction('jumpTypeDefinition')| Jump to type definition locations. + โ€ข |CocAction('jumpReferences')|| Jump to references. + โ€ข |CocAction('jumpUsed')| Jump to references without declarations. + โ€ข |CocAction('definitions')| Get definition list. + โ€ข |CocAction('declarations')| Get declaration list. + โ€ข |CocAction('implementations')| Get implementation list. + โ€ข |CocAction('typeDefinitions')| Get type definition list. + โ€ข |CocAction('references')| Get reference list. + +Send custom locations request to languageserver: + + โ€ข |CocLocations()| + โ€ข |CocLocationsAsync()| + +------------------------------------------------------------------------------ +RENAME *coc-rename* + +Rename provides workspace-wide rename of a symbol. Workspace edit +|coc-workspace-edit| is requested and applied to related buffers when +confirmed. + +Check if current buffer has rename provider with +`:echo CocAction('hasProvider', 'rename')` + +Rename key-mappings:~ + + โ€ข |(coc-rename)| + +Rename functions:~ + + โ€ข |CocAction('rename')| Rename the symbol under the cursor. + โ€ข |CocAction('refactor')| Open refactor buffer for all references (including + definitions), recommended for function signature refactor. + +Rename local variable:~ + +Use command `:CocCommand document.renameCurrentWord` which uses |coc-cursors| +to edit multiple locations at the same time and defaults to word extraction +when rename provider doesn't exist. + +Rename configuration:~ + +Use |coc-preferences-renameFillCurrent| to enable/disable populating prompt +window with current variable name. + +------------------------------------------------------------------------------ +SIGNATURE HELP *coc-signature* + +Signature help for functions is shown automatically when user +types trigger characters defined by the provider, which will use floating +window/popup to show relevant documentation. + +Use |CocAction('showSignatureHelp')| to trigger signature help manually. + +Note error will not be thrown when provider does not exist or nothing is returned +by languageserver, use `echo CocAction('hasProvider', 'signature')` to check +if a signature help provider exists. + +Use |coc-config-signature| to change default signature help behavior. + +|CocFloatActive| is used to highlight activated parameter part. + +------------------------------------------------------------------------------ +INLAY HINT *coc-inlayHint* + +Inlay hint is enabled for all filetypes by default. Inlay hint uses virtual +text which requires neovim >= 0.5.0 or vim >= 9.0.0067. + +Note: you may need configure extension or languageserver to make inlay hint +works. + +To temporarily toggle inlay hint of current buffer, use command +`:CocCommand document.toggleInlayHint` + +Change highlight group:~ + + โ€ข |CocInlayHint| + โ€ข |CocInlayHintType| + โ€ข |CocInlayHintParameter| + +Configure inlay hint support:~ + +|coc-config-inlayHint| + +------------------------------------------------------------------------------ +FORMAT *coc-format* + +Some tools may reload buffer from disk file during format, coc.nvim only +apply `TextEdit[]` to the document. + +Don't be confused with vim's indent feature, configure/fix the 'indentexpr' of +your buffer if the indent is wrong after character insert. (use +|coc-format-ontype| might helps with the indent) + + *coc-format-options* +Format options:~ + +Buffer options that affect document format: 'eol', 'shiftwidth' and +'expandtab'. + + โ€ข |b:coc_trim_trailing_whitespace| Trim trailing whitespace on a line. + โ€ข |b:coc_trim_final_newlines| Trim all newlines after the final newline at + the end of the file. + +Those options are converted to `DocumentFormattingOptions` and transferred to +languageservers before format. Note: the languageservers may only support +some of those options. + + *coc-format-document* +Format full document:~ + +Use |CocAction('format')|, you can create a command like: > + + command! -nargs=0 Format :call CocActionAsync('format') +< +to format current buffer. + + *coc-format-ontype* +Format on type:~ + +Format on type could be enabled by |coc-preferences-formatOnType|. + +Use `:CocCommand document.checkBuffer` to check if `formatOnType` provider +exists for current buffer. + +To format on , create key-mapping of that uses |coc#on_enter()|. + +If you don't like the behavior on type bracket characters, configure +|coc-preferences-bracketEnterImprove||. + + *coc-format-selected* +Format selected code:~ + +Use 'formatexpr' for specific filetypes: > + + autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') + +So that |gq| could works for format range of lines. +> +Setup visual mode and operator key-mappings: > + + xmap f (coc-format-selected) + nmap f (coc-format-selected) +< + *coc-format-onsave* +Format on save:~ + +To enable format on save, use configuration |coc-preferences-formatOnSave|. + +Or create |BufWritePre| autocmd like: > + + autocmd BufWritePre * call CocAction('format') +< +Note the operation have to synchronized, avoid use |CocActionAsync()|. +Note to skip the autocmd, use `:noa w` to save the buffer. + +The operation on save will block your vim, to not block too long time, the +operation will be canceled after 0.5s, configured by +|coc-preferences-willSaveHandlerTimeout| + +------------------------------------------------------------------------------ +CODE ACTION *coc-code-actions* + +Code actions are used for ask languageserver to provide specific kind code +changes. + +Possible code action kinds: + + โ€ข `quickfix` used for fix diagnostic(s). + โ€ข `refactor` used for code refactor. + โ€ข `source` code actions apply to the entire file. + โ€ข `organizeImport` organize import statements of current document. + +Key-mappings for code actions:~ + + โ€ข |(coc-fix-current)| Invoke quickfix action at current line if any. + โ€ข |(coc-codeaction-cursor)| Choose code actions at cursor position. + โ€ข |(coc-codeaction-line)| Choose code actions at current line. + โ€ข |(coc-codeaction)| Choose code actions of current file. + โ€ข |(coc-codeaction-source)| Choose source code action of current file. + โ€ข |(coc-codeaction-selected)| Choose code actions from selected range. + โ€ข |(coc-codeaction-refactor)| Choose refactor code action at cursor + position. + โ€ข |(coc-codeaction-refactor-selected)| Choose refactor code action with + selected code. + +Except for |(coc-fix-current)| which invoke code action directly, +|coc-dialog-menu| would be shown for pick specific code action. + +To invoke organize import action, use command like: +> + command! -nargs=0 OR :call CocAction('organizeImport') + +See |CocAction('organizeImport')| for details. + +Related APIs~ + + โ€ข |CocAction('codeActions')| + โ€ข |CocAction('organizeImport')| + โ€ข |CocAction('fixAll')| + โ€ข |CocAction('quickfixes')| + โ€ข |CocAction('doCodeAction')| + โ€ข |CocAction('doQuickfix')| + โ€ข |CocAction('codeActionRange')| + +------------------------------------------------------------------------------ +DOCUMENT HIGHLIGHTS *coc-document-highlights* + +Document highlights is used for highlight same symbols of current document +under cursor. + +To enable highlight on CursorHold, create an autocmd like this: > + + autocmd CursorHold * call CocActionAsync('highlight') +< +Checkout |coc-highlights-document| for related highlight groups. + +Note error will not be thrown when provider not exists or nothing returned +from languageserver with |CocAction('highlight')| + +Install `coc-highlight` extension if you want to highlight same words under +cursor without languageserver support. + +To jump between previous/next symbol position, use +`:CocCommand document.jumpToPrevSymbol` and +`:CocCommand document.jumpToNextSymbol` + +------------------------------------------------------------------------------ +DOCUMENT COLORS *coc-document-colors* + +Document colors added color highlights to vim buffers. To enable document +color highlights, use |coc-config-colors-enable|. + +The feature requires vim >= 8.1.1719 or neovim >= 0.5.0. + +Note: the highlights define gui colors only, make use you have 'termguicolors' +enabled (and your terminal support gui colors) if you're using vim in +terminal. + +To pick a color from system color picker, use |CocAction('pickColor')| or +choose `editor.action.pickColor` from |:CocCommand|. + +Note: pick color may not work on your system. + +To change color presentation, use |CocAction('colorPresentation')| or choose +`editor.action.colorPresentation` from |:CocCommand|. + +To highlights colors without languageservers, install +https://github.com/neoclide/coc-highlight + +============================================================================== +DOCUMENT LINKS *coc-document-links* + +Check if current buffer have documentLink provider by +`:echo CocAction('hasProvider', 'documentLink')` + +Highlight and tooltip of the links could be configured by |coc-config-links|. + +Use |coc-list-links| to manage list of links in current document. + +Document link key-mappings:~ + +|(coc-openlink)| + +Document link functions:~ + + โ€ข |CocAction('openLink')| Open link under cursor. + โ€ข |CocAction('links')| Get link list of current buffer. + +------------------------------------------------------------------------------ +SNIPPETS SUPPORT *coc-snippets* + +Snippets engine of coc.nvim support both VSCode snippets and ultisnips +snippets format. + +The completion item with snippet format has label ends with +|coc-config-suggest-snippetIndicator| (`~` by default). + +Select the complete item and confirm the completion by |coc#pum#confirm()| or +|coc#_select_confirm()| to expand the snippet of current selected complete +ttem. + +Jump snippet placeholders:~ + +|g:coc_snippet_next| and |g:coc_snippet_prev| are used to jump placeholders on +both select mode and insert mode, which defaults to and . Buffer +key-mappings are created on snippet activate, and removed on snippet +deactivate. + +Deactivate snippet session:~ + +A snippet session would be deactivated under the following conditions: + + โ€ข |InsertEnter| triggered outside snippet. + โ€ข Jump to final placeholder. + โ€ข Content change detected after snippet. + โ€ข Content changed in a snippet outside placeholder (except for deletion of + plain text). + +To load and expand custom snippets, install `coc-snippets` extension is +recommended. + +Related configurations:~ + + โ€ข |g:coc_snippet_prev| + โ€ข |g:coc_snippet_next| + โ€ข |g:coc_selectmode_mapping| + โ€ข |coc-config-suggest-snippetIndicator| + โ€ข |coc-config-suggest-preferCompleteThanJumpPlaceholder| + โ€ข |coc-config-snippet-highlight| + โ€ข |coc-config-snippet-statusText| + โ€ข |coc-config-snippet-nextPlaceholderOnDelete| + +Related functions:~ + + โ€ข |coc#snippet#next()| + โ€ข |coc#snippet#prev()| + โ€ข |coc#expandable()| + โ€ข |coc#jumpable()| + โ€ข |coc#expandableOrJumpable()| + +Related variables, highlights and autocmds:~ + + โ€ข |b:coc_snippet_active| Check if snippet session is activated. + โ€ข |CocSnippetVisual| For highlight of current placeholders. + โ€ข |CocJumpPlaceholder| AutocmdS triggered after placeholder jump. + +------------------------------------------------------------------------------ +WORKSPACE SUPPORT *coc-workspace* + + *coc-workspace-folders* +Workspace folders~ + +Unlike VSCode which prompt you to open folders, workspace folders of coc.nvim +are resolved from filepath after document attached. + +A list of file/folder names is used for resolve workspace folder, the patterns +could comes from: + + โ€ข |b:coc_root_patterns| + โ€ข "rootPatterns" field of languageserver in |coc-config-languageserver|. + โ€ข "rootPatterns" contributions from coc.nvim extensions. + โ€ข |coc-config-workspace-rootPatterns| + +Workspace folder is resolved from cwd of vim first (by default) and then from +top directory to the parent directory of current filepath, when workspace +folder not resolved, current working directory is used if it's parent folder +of current buffer. Configurations are provided to change the default behavior: + + โ€ข |coc-config-workspace-ignoredFiletypes| + โ€ข |coc-config-workspace-ignoredFolders| + โ€ข |coc-config-workspace-bottomUpFiletypes| + โ€ข |coc-config-workspace-workspaceFolderCheckCwd| + โ€ข |coc-config-workspace-workspaceFolderFallbackCwd| + +Note for performance reason, user's home directory would never considered as +workspace folder, which also means the languageserver that requires workspace +folder may not work when you start vim from home directory. + +To preserve workspace folders across vim session, |g:WorkspaceFolders| is +provided. + +Use `:CocCommand workspace.workspaceFolders` to echo current workspaceFolders. + +To manage current workspace folders, use |coc-list-folders| + +To get related root patterns of current buffer, use |coc#util#root_patterns()| + + *coc-workspace-edits* +Workspace edit~ + +Workspace edit is used to apply changes for multiple buffers(and/or files), the +edit could contains document edits and file operations (including file create, +file/directory delete and file/directory rename). + +When the edit failed to apply, coc.nvim will revert the changes (including +document edits and file operations) that previous made. + +Files not loaded would be loaded by `tab drop` command, configured by +|coc-config-workspace-openResourceCommand|. + +To undo and redo workspace edit just applied, use command +`:CocCommand workspace.undo` and `:CocCommand workspace.redo` + +To inspect previous workspace edit, use command +`:CocCommand workspace.inspectEdit`, in opened buffer, use for jump to +change position under cursor. + +------------------------------------------------------------------------------ +CURSORS SUPPORT *coc-cursors* + +Multiple cursors supported is added to allow edit multiple locations at once. + +Cursors session could be started by following ways: + + โ€ข Use command `:CocCommand document.renameCurrentWord` to rename variable + under cursor. + โ€ข Use |(coc-refactor)| to open refactor buffer. + โ€ข Use |:CocSearch| to open searched locations. + โ€ข Use cursors related key-mappings to add text range, including + |(coc-cursors-operator)|, |(coc-cursors-word)|, + |(coc-cursors-position)| and |(coc-cursors-range)| + โ€ข Ranges added by command `editor.action.addRanges` from coc extensions. + +Default key-mappings when cursors activated: + + โ€ข cancel cursors session. + โ€ข jump to next cursors range. + โ€ข jump to previous cursors range. + +Use |coc-config-cursors| to change cursors related key-mappings. +Use highlight group |CocCursorRange| to change default range highlight. +Use |b:coc_cursors_activated| to check if cursors session is activated. + +-------------------------------------------------------------------------------- +SYMBOLS OUTLINE *coc-outline* + +Outline is a split window with current document symbols rendered as +|coc-tree|. + +To show and hide outline of current window, use |CocAction('showOutline')| and +|CocAction('hideOutline')|. + +Outline view has Window variable `cocViewId` set to `OUTLINE`. + +Following outline features are supported: + + โ€ข Start fuzzy filter by |coc-config-tree-key-activeFilter|. + โ€ข Automatic update after document change. + โ€ข Automatic reload when buffer in current window changed. + โ€ข Automatic follow cursor position by default. + โ€ข Different filter modes that can be changed on the fly + |coc-config-outline-switchSortKey|. + โ€ข Enable auto preview by |coc-config-outline-togglePreviewKey|. + +Outline would try to reload document symbols after 500ms when provider not +registered, which avoid the necessary to check provider existence. + +Checkout |coc-config-tree| and |coc-config-outline| for available +configurations. + +Checkout |CocTree| and |CocSymbol| for customize highlights. + +Use configuration `"suggest.completionItemKindLabels"` for custom icons. + +To show outline for each tab automatically, use |autocmd|: +> + autocmd VimEnter,Tabnew * + \ if empty(&buftype) | call CocActionAsync('showOutline', 1) | endif +< +To close outline when it's the last window automatically, use +|autocmd| like: +> + autocmd BufEnter * call CheckOutline() + function! CheckOutline() abort + if &filetype ==# 'coctree' && winnr('$') == 1 + if tabpagenr('$') != 1 + close + else + bdelete + endif + endif + endfunction +< +Create a key-mapping to toggle outline, like: +> + nnoremap o :call ToggleOutline() + function! ToggleOutline() abort + let winid = coc#window#find('cocViewId', 'OUTLINE') + if winid == -1 + call CocActionAsync('showOutline', 1) + else + call coc#window#close(winid) + endif + endfunction +< +-------------------------------------------------------------------------------- +CALL HIERARCHY *coc-callHierarchy* + +A call hierarchy is a split |coc-tree| window with locations for incoming or +outgoing calls of function under cursor position. + +Call hierarchy window is opened by |CocAction('showIncomingCalls')| and +|CocAction('showOutgoingCalls')|. + +Call hierarchy is configured by |CocSymbol|, |coc-config-callHierarchy| and +|coc-config-tree|. + +Related ranges are highlighted with |CocSelectedRange| highlight group in +opened buffer. + +|coc-dialog-menu| could be invoked by |coc-config-tree-key-actions| (default +to ). Available actions: + + โ€ข Dismiss. + โ€ข Open in new tab. + โ€ข Show Incoming Calls. + โ€ข Show Outgoing Calls. + +Use in call hierarchy tree to open location in original window. + +-------------------------------------------------------------------------------- +TYPE HIERARCHY *coc-typeHierarchy* + +A type hierarchy is a split |coc-tree| window with locations for super types +or sub types from types at current position. + +Type hierarchy window is opened by |CocAction('showSuperTypes')| and +|CocAction('showSubTypes')|. + +Type hierarchy is configured by |CocSymbol|, |coc-config-typeHierarchy| and +|coc-config-tree|. + +Actions are the same as |coc-callHierarchy|. + +-------------------------------------------------------------------------------- +SEMANTIC HIGHLIGHTS *coc-semantic-highlights* + +Semantic tokens are used to add additional color information to a buffer that +depends on language specific symbol information. + +The feature requires vim >= 8.1.1719 or neovim >= 0.5.0. + +Use |coc-config-semanticTokens-enable| to enable semantic tokens highlights. + +Use `:CocCommand semanticTokens.checkCurrent` to check semantic highlight +information with current buffer. + +To create custom highlights for symbol under cursor, follow these steps: + + โ€ข Inspect semantic token by +> + :CocCommand semanticTokens.inspect +< + to check token type and token modifiers with current symbol. + + โ€ข Create new highlight group by |highlight|, for example: +> + :hi link CocSemDeclarationVariable MoreMsg +< + โ€ข Refresh semantic highlight of current buffer by: +> + :CocCommand semanticTokens.refreshCurrent +< +See |CocSem| to customize semantic token highlight groups. + +See |coc-config-semanticTokens| for related configurations. + +-------------------------------------------------------------------------------- +FOLD *coc-fold* + +Check if current buffer have fold provider by +`:echo CocAction('hasProvider', 'foldingRange')` + +Use |CocAction('fold')| to create folds by request the languageserver and +create manual folds on current window. + +-------------------------------------------------------------------------------- +SELECTION RANGE *coc-selection-range* + +Select range forward or backward at cursor position. + +Check if current buffer have selection range provider by +`:echo CocAction('hasProvider', 'selectionRange')` + +Selection range key-mappings:~ + + โ€ข |(coc-range-select)| Select range forward. + โ€ข |(coc-range-select-backward)| Select range backward. + +Selection range function:~ + + โ€ข |CocAction('rangeSelect')| Visual select previous or next selection range + +-------------------------------------------------------------------------------- +CODE LENS *coc-code-lens* + +Code lens feature shows additional information above or after specific lines. +Works best on nvim >= 0.6.0 and vim >= 9.0.0438. On older vim, some +configurations may not work. + +CodeLens are not shown by default, use |coc-config-codeLens-enable| to enable, +you may also need enable codeLens feature by configure extension or +languageserver. + +Check if current buffer have code lens provider by +`:echo CocAction('hasProvider', 'codeLens')` + +To temporarily toggle codeLens of current buffer, use command +`:CocCommand document.toggleCodeLens` + +To invoke command from codeLens, use |(coc-codelens-action)|. + +Use |CocCodeLens| for highlight of codeLens virtual text. + +Code lens are automatically requested on buffer create/change, checkout +|coc-config-codeLens| for available configurations. + +-------------------------------------------------------------------------------- +LINKED EDITING *coc-linked-editing* + +Linked editing feature enables editing multiple linked ranges at the same time, +for example: html tags. The linked editing ranges would be highlighted with +|CocLinkedEditing| when activated. + +Check if current buffer have linked editing provider by +`:echo CocAction('hasProvider', 'linkedEditing')` + +Linked editing feature is disabled by default, use +|coc-preferences-enableLinkedEditing| to enable. + +============================================================================== +INTERFACE *coc-interface* + +-------------------------------------------------------------------------------- + +Key mappings *coc-key-mappings* + +There're some cases that local key-mappings are enabled for current buffer. + + โ€ข Snippet jump key-mappings when snippet is activated: |g:coc_snippet_prev| + and |g:coc_snippet_next|. + โ€ข Cursor jump and cancel key-mappings when cursors is activated + |coc-config-cursors|. + โ€ข Dialog key-mappings for confirm and cancel dialog window + |coc-config-dialog|. + โ€ข Key-mappings for |CocList| buffer: |coc-list-mappings|. + +Note: Use |:verbose| command to check key-mappings that taking effect. + +Note: Use 'noremap' with will make the key-mapping not work at all. + +Note: key-mappings are provided for convenient, use |CocActionAsync()| or +|CocAction()| for more options. + +Normal mode key-mappings:~ + +*(coc-diagnostic-info)* Show diagnostic message of current position by +invoke |CocAction('diagnosticInfo')| + +*(coc-diagnostic-next)* Jump to next diagnostic position after current +cursor position. + +*(coc-diagnostic-prev)* Jump to previous diagnostic position before +current cursor position. + +*(coc-diagnostic-next-error)* Jump to next diagnostic error position. + +*(coc-diagnostic-prev-error)* Jump to previous diagnostic error position. + +*(coc-definition)* Jump to definition(s) of current symbol by invoke +|CocAction('jumpDefinition')| + +*(coc-declaration)* Jump to declaration(s) of current symbol by invoke +|CocAction('jumpDeclaration')| + +*(coc-implementation)* Jump to implementation(s) of current symbol by +invoke |CocAction('jumpImplementation')| + +*(coc-type-definition)* Jump to type definition(s) of current symbol by +invoke |CocAction('jumpTypeDefinition')| + +*(coc-references)* Jump to references of current symbol by invoke +|CocAction('jumpReferences')| + +*(coc-references-used)* Jump to references of current symbol exclude +declarations. + +*(coc-format-selected)* + + Format selected range, works on both |visual-mode| and |normal-mode|, + when used in normal mode, the selection works on the motion object. + + For example: > + + vmap p (coc-format-selected) + nmap p (coc-format-selected) +< + makes `p` format the visually selected range, and you can use + `pap` to format a paragraph. + +*(coc-format)* Format the whole buffer by invoke |CocAction('format')| +*(coc-rename)* Rename symbol under cursor to a new word by invoke +|CocAction('rename')| + +*(coc-refactor)* Open refactor window for refactor of current symbol by +invoke |CocAction('refactor')| + +*(coc-command-repeat)* Repeat latest |CocCommand|. + +*(coc-codeaction)* Get and run code action(s) for current file, use +|coc-codeaction-cursor| for same behavior as VSCode. + +*(coc-codeaction-source)* Get and run source code action(s) for current +file. The same as 'Source action...' in context menu of VSCode. + +*(coc-codeaction-line)* Get and run code action(s) for current line. + +*(coc-codeaction-cursor)* Get and run code action(s) using empty range +at current cursor. + +*(coc-codeaction-selected)* Get and run code action(s) with the selected +code. Works on both |visual-mode| and |normal-mode|. + +*(coc-codeaction-refactor)* Get and run refactor code action(s) at +current cursor, the same as refactor context menu in VSCode, disabled actions +are not excluded. + +*(coc-codeaction-refactor-selected)* Get and run refactor code action(s) +with selected code. Works on both |visual-mode| and |normal-mode|. + +*(coc-openlink)* Open link under cursor by use |CocAction('openlink')|. + +*(coc-codelens-action)* invoke command contributed by codeLens at the +current line. + +*(coc-fix-current)* Try first quickfix action for diagnostics of current +line. + +*(coc-float-hide)* Hide all float windows/popups created by coc.nvim. + +*(coc-float-jump)* Jump to first float window (neovim only), use +|CTRL-W_p| for jump to previous window. + +*(coc-range-select)* + + Select next selection range. + Works on both |visual-mode| and |normal-mode|. + + Note: requires selection ranges feature of language server. + +*(coc-funcobj-i)* + + Select inside function. Recommend mapping: + Works on both |visual-mode| and |normal-mode|. + > + xmap if (coc-funcobj-i) + omap if (coc-funcobj-i) +< + Note: Requires 'textDocument.documentSymbol' support from the language + server. + +*(coc-funcobj-a)* + + Select around function. Works on both |visual-mode| and + |normal-mode|. Recommended mapping: +> + xmap af (coc-funcobj-a) + omap af (coc-funcobj-a) +< + Note: Requires 'textDocument.documentSymbol' support from the language + server. + +*(coc-classobj-i)* + + Select inside class/struct/interface. Works on both |visual-mode| and + |normal-mode|. Recommended mapping: +> + xmap ic (coc-classobj-i) + omap ic (coc-classobj-i) +< + Note: Requires 'textDocument.documentSymbol' support from the language + server. + +*(coc-classobj-a)* + + Select around class/struct/interface. Works on both |visual-mode| and + |normal-mode|. Recommended mapping: +> + xmap ac (coc-classobj-a) + omap ac (coc-classobj-a) +< + Note: Requires 'textDocument.documentSymbol' support from the language + server. + + +*(coc-cursors-operator)* Add text to cursors session by motion object. + +*(coc-cursors-word)* Add current word to cursors session. + +*(coc-cursors-position)* Add current position as empty range to cursors +session. + +Visual mode key-mappings:~ + +*(coc-range-select-backward)* + + Select previous selection range. + + Note: requires selection ranges feature of language server, like: + coc-tsserver, coc-python + +*(coc-cursors-range)* Add selection to cursors session. + +-------------------------------------------------------------------------------- +VARIABLES *coc-variables* + +User defined variables:~ + +-------------------------------------------------------------------------------- + +Buffer variables *coc-buffer-variables* + +b:coc_enabled *b:coc_enabled* + + Set to `0` on buffer create if you don't want coc.nvim receive content + from buffer. Normally used with |BufAdd| autocmd, example: +> + " Disable file with size > 1MB + autocmd BufAdd * if getfsize(expand('')) > 1024*1024 | + \ let b:coc_enabled=0 | + \ endif +< +b:coc_force_attach *b:coc_force_attach* + + When is `1`, attach the buffer without check the 'buftype' option. + Should be set on buffer create. + +b:coc_root_patterns *b:coc_root_patterns* + + Root patterns used for resolving workspaceFolder for + the current file, will be used instead of + `"workspace.rootPatterns"` setting. Example: > + + autocmd FileType python let b:coc_root_patterns = + \ ['.git', '.env'] +< +b:coc_suggest_disable *b:coc_suggest_disable* + + Disable completion support of current buffer. Example: > + + " Disable completion for python + autocmd FileType python let b:coc_suggest_disable = 1 + +b:coc_disabled_sources *b:coc_disabled_sources* + + Disabled completion sources of current buffer. Example: +> + let b:coc_disabled_sources = ['around', 'buffer', 'file'] +< +b:coc_suggest_blacklist *b:coc_suggest_blacklist* + + List of input words for which completion should not be triggered. + Example: > + + " Disable completion for 'end' in Lua files + autocmd FileType lua let b:coc_suggest_blacklist = ["end"] + +b:coc_additional_keywords *b:coc_additional_keywords* + + Addition keyword characters for generate keywords. Example: > + + " Add keyword characters for CSS + autocmd FileType css let b:coc_additional_keywords = ["-"] + +b:coc_trim_trailing_whitespace *b:coc_trim_trailing_whitespace* + + Trim trailing whitespace on a line, default `0`. + Use by "FormattingOptions" send to the server. + +b:coc_trim_final_newlines *b:coc_trim_final_newlines* + + Trim all newlines after the final newline at the end of the file. + Use by "FormattingOptions" send to the server. + + Other buffer options that affect document format: 'eol', 'shiftwidth' + and 'expandtab'. + + Note: language server may not respect format options. + +-------------------------------------------------------------------------------- + +Global variables *coc-global-variables* + +g:coc_disable_startup_warning *g:coc_disable_startup_warning* + + Disable possible warning on startup for old vim/node version. + + Default: 0 + +g:coc_disable_uncaught_error *g:coc_disable_uncaught_error* + + Disable uncaught error messages from node process of coc.nvim. + + Default: 0 + +g:coc_text_prop_offset *g:coc_text_prop_offset* + + Start |textprop| id offset of highlight namespaces on vim, change to + other value to avoid conflict with other vim plugin. + + Default: 1000 + +g:coc_disable_transparent_cursor *g:coc_disable_transparent_cursor* + + Disable transparent cursor when CocList is activated. + Set it to `1` if you have issue with transparent + cursor. + + Default: 0 + +g:coc_start_at_startup *g:coc_start_at_startup* + + Start coc service on startup, use |CocStart| to start server when you + set it to 0. + + Default: 1 + +g:coc_global_extensions *g:coc_global_extensions* + + Global extension names to install when they aren't installed. +> + let g:coc_global_extensions = ['coc-json', 'coc-git'] +< + Note: coc.nvim will try to install extensions that are not installed + in this list after initialization. + +g:coc_uri_prefix_replace_patterns *g:coc_uri_prefix_replace_patterns* + + This map defines URI prefix replacements. This is useful in the case + that an LSP requires code to adhere to a particular directory + structure. For example, `/Users/myUser/workspace` can be mapped to + `/home/myUser/workspace`. +> + let g:coc_uri_prefix_replace_patterns = {'/Users': '/home'} +< +g:coc_enable_locationlist *g:coc_enable_locationlist* + + Use location list of |coc-list| when jump to locations. + + Set it to 0 when you need customize behavior of location jump by use + |CocLocationsChange| and |g:coc_jump_locations| + + If you want use vim's quickfix list instead, add + `"coc.preferences.useQuickfixForLocations": true` in your + configuration file, this configuration would be ignored and no + |CocLocationsChange| triggered. + + Default: 1 + +g:coc_snippet_next *g:coc_snippet_next* + + Trigger key for going to the next snippet position, applied in insert + and select mode. + + Only works when snippet session is activated. + + Default: + +g:coc_snippet_prev *g:coc_snippet_prev* + + Trigger key for going to the previous snippet position, applied in + insert and select mode. + + Only works when snippet session is activated. + + Default: + +g:coc_filetype_map *g:coc_filetype_map* + + Map for document filetypes so the server could handle current document + as another filetype, example: > + + let g:coc_filetype_map = { + \ 'html.swig': 'html', + \ 'wxss': 'css', + \ } +< + Default: {} + + See |coc-document-filetype| for details. + +g:coc_selectmode_mapping *g:coc_selectmode_mapping* + + Add key mappings for making snippet select mode easier. The same as + |Ultisnip| does. > + + snoremap c + snoremap c + snoremap c + snoremap "_c +< + Default: 1 + +g:coc_node_path *g:coc_node_path* + + Path to node executable to start coc service, example: > + + let g:coc_node_path = '/usr/local/opt/node@12/bin/node' +< + Use this when coc has problems with your system node, + + Note: you can use `~` as home directory. + +g:coc_node_args *g:coc_node_args* + + Arguments passed to node when starting coc.nvim service. + + Useful for start coc.nvim in debug mode, example: > +> + let g:coc_node_args = ['--nolazy', '--inspect-brk=6045'] +< + Default: [] + +g:coc_status_error_sign *g:coc_status_error_sign* + + Error character used by |coc#status()|, default: `E` + +g:coc_status_warning_sign *g:coc_status_warning_sign* + + Warning character used by |coc#status()|, default: `W` + +g:coc_quickfix_open_command *g:coc_quickfix_open_command* + + Command used for open quickfix list. To jump fist position after + quickfix list opend, you can use: +> + let g:coc_quickfix_open_command = 'copen|cfirst' +< + Default: |copen| + +g:coc_open_url_command *g:coc_open_url_command* + + Command used for open remote url, when not exists, coc.nvim will try + to use "open", "xdg-open" on Mac and Linux, "cmd /c start" on windows. + +g:node_client_debug *g:node_client_debug* + + Enable debug mode of node client for check rpc messages between vim + and coc.nvim. Use environment variable $NODE_CLIENT_LOG_FILE to set + the log file or get the log file after coc.nvim started. + To open the log file, use command: > + + :call coc#client#open_log() +< + Default: `0` + +g:coc_user_config *g:coc_user_config* + + User configuration which will be passed to coc.nvim process during + initialization, no effect when changed after coc.nvim started. Prefer + |coc#config| unless coc.nvim is lazy loaded. Example: > + + let g:coc_user_config = {} + let g:coc_user_config['suggest.timeout'] = 500 + let g:coc_user_config['suggest.noselect'] = v:true +< + Note: those configuration would overwrite the configuration from the + user's settings file, unless you have to use some dynamic variables, + using the settings file is recommended. + +g:coc_config_home *g:coc_config_home* + + Configure the directory which will be used to look for + user's `coc-settings.json`, default: + + Windows: `~/AppData/Local/nvim` + Other: `~/.config/nvim` + +g:coc_data_home *g:coc_data_home* + + Configure the directory which will be used to for data + files(extensions, MRU and so on), default: + + Windows: `~/AppData/Local/coc` + Other: `~/.config/coc` + +g:coc_terminal_height *g:coc_terminal_height* + + Height of terminal window, default `8`. + +g:coc_markdown_disabled_languages *g:coc_markdown_disabled_languages* + + Filetype list that should be disabled for highlight in markdown block, + useful to disable filetypes that could be slow with syntax + highlighting, example: > + + let g:coc_markdown_disabled_languages = ['html'] + +g:coc_highlight_maximum_count *g:coc_highlight_maximum_count* + + When highlight items exceed maximum count, highlight items will be + grouped and added by using |timer_start| for better user experience. + + Default `100` + +g:coc_default_semantic_highlight_groups *g:coc_default_semantic_highlight_groups* + + Create default semantic highlight groups for |coc-semantic-highlights| + + Default: `1` + +g:coc_max_treeview_width *g:coc_max_treeview_width* + + Maximum width of tree view when adjusted by auto width. + + Default: `40` + +g:coc_borderchars *g:coc_borderchars* + + Border characters used by border window, default to: +> + ['โ”€', 'โ”‚', 'โ”€', 'โ”‚', 'โ”Œ', 'โ”', 'โ”˜', 'โ””'] +< + Note: you may need special font like Nerd font to show them. + +g:coc_border_joinchars *g:coc_border_joinchars* + + Border join characters used by float window/popup, default to: +> + ['โ”ฌ', 'โ”ค', 'โ”ด', 'โ”œ'] +< + Note: you may need special font like Nerd font to show them. + +g:coc_prompt_win_width *g:coc_prompt_win_width* + + Width of input prompt window, default `32`. + + *g:coc_notify* +g:coc_notify_error_icon *g:coc_notify_error_icon* + + Error icon for notification, default to: ๏— + +g:coc_notify_warning_icon *g:coc_notify_warning_icon* + + Warning icon for notification, default to: โš  + +g:coc_notify_info_icon *g:coc_notify_info_icon* + + Info icon for notification, default to: ๏ช + +-------------------------------------------------------------------------------- + +Some variables are provided by coc.nvim. + + +g:WorkspaceFolders *g:WorkspaceFolders* + + Current workspace folders, used for restoring from a session file, add + `set sessionoptions+=globals` to vimrc for restoring globals on + session load. + +g:coc_jump_locations *g:coc_jump_locations* + + This variable would be set to jump locations when the + |CocLocationsChange| autocmd is fired. + + Each location item contains: + + 'filename': full file path. + 'lnum': line number (1 based). + 'col': column number(1 based). + 'text': line content of location. + +g:coc_process_pid *g:coc_process_pid* + + Process pid of coc.nvim service. If your vim doesn't kill coc.nvim + process on exit, use: +> + autocmd VimLeavePre * if get(g:, 'coc_process_pid', 0) + \ | call system('kill -9 '.g:coc_process_pid) | endif +< + in your vimrc. + +g:coc_service_initialized *g:coc_service_initialized* + + Is `1` when coc.nvim initialized, used with autocmd |CocNvimInit|. + +g:coc_status *g:coc_status* + + Status string contributed by coc.nvim and extensions, used for status + line. + +g:coc_last_float_win *g:coc_last_float_win* + + Window id of latest created float/popup window. + +g:coc_last_hover_message *g:coc_last_hover_message* + + Last message echoed from `doHover`, can be used in statusline. + + Note: not used when floating or preview window used for `doHover`. + +b:coc_snippet_active *b:coc_snippet_active* + + Is `1` when snippet session is activated, use |coc#jumpable| to check + if it's possible to jump placeholder. + +b:coc_diagnostic_disable *b:coc_diagnostic_disable* + + Disable diagnostic support of current buffer. + +b:coc_diagnostic_info *b:coc_diagnostic_info* + + Diagnostic information of current buffer, the format would look like: + + `{'error': 0, 'warning': 0, 'information': 0, 'hint':0}` + + can be used to customize statusline. See |coc-status|. + +b:coc_current_function *b:coc_current_function* + + Function string that current cursor in. + + Enable |coc-preferences-currentFunctionSymbolAutoUpdate| to update the + value on CursorHold. + +b:coc_cursors_activated *b:coc_cursors_activated* + + Use expression `get(b:, 'coc_cursors_activated',0)` to check if + cursors session is activated for current buffer. + +-------------------------------------------------------------------------------- +FUNCTIONS *coc-functions* + +Some functions only work after the coc.nvim has been initialized. + +To run a function on startup, use an autocmd like: > + + autocmd User CocNvimInit call CocAction('runCommand', + \ 'tsserver.watchBuild') +< +coc#start([{option}]) *coc#start()* + + Start completion with optional {option}. Option could contains: + + - `source` specific completion source name. + + Example: > + + inoremap =coc#start({'source': 'word'}) +< + Use `:CocList sources` to get available sources. + +coc#refresh() *coc#refresh()* + + Start or refresh completion at current cursor position, bind this to + 'imap' to trigger completion, example: > + + if has('nvim') + inoremap coc#refresh() + else + inoremap coc#refresh() + endif + +coc#_select_confirm() *coc#_select_confirm()* + + Select first completion item if no completion item is selected, then + confirm the completion like |coc#pum#confirm()|. Return + +coc#config({section}, {value}) *coc#config()* + + Change user configuration, overwrite configurations from + user config file and default values. Example: > + + call coc#config('coc.preferences', { + \ 'willSaveHandlerTimeout': 1000, + \}) + call coc#config('languageserver', { + \ 'ccls': { + \ "command": "ccls", + \ "trace.server": "verbose", + \ "filetypes": ["c", "cpp", "objc", "objcpp"] + \ } + \}) +< + + Note: this function can be called multiple times. + Note: this function can be called before coc.nvim started. + Note: this function can work alongside the user configuration file, + but it's not recommended to use both. + Note: use |g:coc_user_config| when you have coc.nvim lazy loaded. + +coc#add_command({id}, {command}, [{title}]) *coc#add_command()* + + Add custom Vim command to commands list opened by + `:CocList commands` . + + Example: > + + call coc#add_command('mundoToggle', 'MundoToggle', + \ 'toggle mundo window') +< +coc#expandable() *coc#expandable()* + + Check if a snippet is expandable at the current position. + Requires `coc-snippets` extension installed. + +coc#jumpable() *coc#jumpable()* + + Check if a snippet is jumpable at the current position. + +coc#expandableOrJumpable() *coc#expandableOrJumpable()* + + Check if a snippet is expandable or jumpable at the current position. + Requires `coc-snippets` extension installed. + +coc#on_enter() *coc#on_enter()* + + Notify coc.nvim that has been pressed. + + Used for the format on type and improvement of brackets, example: > + + " Confirm the completion when popupmenu is visible, insert and + " notify coc.nvim otherwise. + inoremap coc#pum#visible() ? coc#pum#confirm() + \: "\u\\=coc#on_enter()\" +< + To enable format on type, use |coc-preferences-formatOnType| + configuration. + +coc#status([{escape}]) *coc#status()* + + Return a status string that can be used in the status line, the status + includes diagnostic information from |b:coc_diagnostic_info| and + extension contributed statuses from |g:coc_status|. For statusline + integration, see |coc-status|. + + Escape '%' to '%%' when {escape} is truth value. + +coc#util#api_version() *coc#util#api_version()* + + Get coc.nvim's vim API version number, start from `1`. + +coc#util#job_command() *coc#util#job_command()* + + Get the job command used for starting the coc service. + +coc#util#get_config_home() *coc#util#get_config_home()* + + Get the config directory that contains the user's coc-settings.json. + +coc#util#get_data_home() *coc#util#get_data_home()* + + Get data home directory, return |g:coc_data_home| when defined, else + use $XDG_CONFIG_HOME/coc when $XDG_CONFIG_HOME exists, else fallback + to `~/AppData/Local/coc` on windows and `~/.config/coc` on other + systems. + +coc#util#extension_root() *coc#util#extension_root()* + + Return extensions root of coc.nvim. + +coc#util#root_patterns() *coc#util#root_patterns()* + + Get root patterns used for current document. + + Result could be something like: > + + {'global': ['.git', '.hg', '.projections.json'], 'buffer': [], 'server': v:null} +< +coc#util#get_config({key}) *coc#util#get_config()* + + Get configuration of current document (mostly defined in + coc-settings.json) by {key}, example: > + + :echo coc#util#get_config('coc.preferences') + +coc#snippet#next() *coc#snippet#next()* + + Jump to next placeholder, does nothing when |coc#jumpable| is 0. + +coc#snippet#prev() *coc#snippet#prev()* + + Jump to previous placeholder, does nothing when |coc#jumpable| is 0. + + *coc#pum* +coc#pum#visible() *coc#pum#visible()* + + Check if customized popupmenu is visible like |pumvisible()| does. + Return 1 when popup menu is visible. + +coc#pum#next({insert}) *coc#pum#next()* + + Select next item of customized popupmenu, insert word when {insert} is + 1. + + Note: this function should only be used in key-mappings. + +coc#pum#prev({insert}) *coc#pum#prev()* + + Select previous item of customized popupmenu, insert word when {insert} + is truth value. + + Note: this function should only be used in key-mappings. + +coc#pum#stop() *coc#pum#stop()* + + Close the customized popupmenu, works like of vim. + + Note: this function should only be used in key-mappings. + +coc#pum#cancel() *coc#pum#cancel()* + + Cancel the customized popupmenu and revert trigger input, like + of vim. When no completion item selected, close the popup menu only. + + Note: this function should only be used in key-mappings. + +coc#pum#insert() *coc#pum#insert()* + + Insert word of current selected item and finish completion. Unlike + |coc#pum#confirm()|, no text edit would be applied and snippet would + not be expanded. + + Note: this function should only be used in key-mappings. + +coc#pum#confirm() *coc#pum#confirm()* + + Confirm completion of current selected item and close the customized + popup menu, like of vim. + + Note: this function should only be used in key-mappings. + +coc#pum#info() *coc#pum#info()* + + Return information of the customized popupmenu, should only be used + when |coc#pum#visible()| is 1. + + Result contains: + index Current select item index, 0 based. + scrollbar Non-zero if a scrollbar is displayed. + row Screen row count, 0 based. + col Screen column count, 0 based. + width Width of pum, including padding and border. + height Height of pum, including padding and border. + size Count of displayed complete items. + inserted Is |v:true| when there is item inserted. + reversed Is |v:true| when pum shown above cursor and + enable |suggest.reversePumAboveCursor| + +coc#pum#select({index}, {insert}, {confirm}) *coc#pum#select()* + + Selects an item in the completion popupmenu. + Return empty string. + + Parameters:~ + {index} Index (zero-based) of the item to select. + {insert} Whether the selection should be inserted + in the buffer. + {confirm} Confirm the completion and dismiss the + popupmenu, implies `insert`. + +coc#pum#one_more() *coc#pum#one_more()* + + Insert one more character from current complete item (first complete + item when no complete item selected), works like of + |popupmenu-keys|. Note that the word of complete item should starts + with current input. + + Nothing happens when failed. + + Note: this function should only be used in key-mappings. + +coc#pum#scroll({forward}) *coc#pum#scroll()* + + Scroll the popupmenu forward or backward by page. + Timer is used to make it works as {rhs} of key-mappings. + Return . + + Parameters:~ + {forward} Scroll forward when none zero. + + *coc#notify* +coc#notify#close_all() *coc#notify#close_all()* + + Close all notification windows. + +coc#notify#do_action([{winid}]) *coc#notify#do_action()* + + Invoke action for all notification windows, or particular window with + winid. + +coc#notify#copy() *coc#notify#copy()* + + Copy all content from notifications to system clipboard. + +coc#notify#show_sources() *coc#notify#show_sources()* + + Show source name (extension name) in notification windows. + +coc#notify#keep() *coc#notify#keep()* + + Stop auto hide timer of notification windows. + +coc#float#has_float([{all}]) *coc#float#has_float()* + + Check if float window/popup exists, check coc.nvim's float + window/popup by default. + +coc#float#close_all([{all}]) *coc#float#close_all()* + + Close all float windows/popups created by coc.nvim, set {all} to `1` + for all float window/popups. + + Return `""`. + +coc#float#close({winid}) *coc#float#close()* + + Close float window/popup with {winid}. + +coc#float#has_scroll() *coc#float#has_scroll()* + + Return `1` when there is scrollable float window/popup created by + coc.nvim. + + Example key-mappings: +> + if has('nvim-0.4.0') || has('patch-8.2.0750') + nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" + endif +< +coc#float#scroll({forward}, [{amount}]) *coc#float#scroll()* + + Scroll all scrollable float windows/popups, scroll backward when + {forward} is not `1`. {amount} could be number or full page when + omitted. Popup menu is excluded. + + Note: this function requires nvim >= 0.4.0 or vim >= 8.2.750 to work. + + +CocRequest({id}, {method}, [{params}]) *CocRequest()* + + Send a request to language client of {id} with {method} and optional + {params}. Example: > + + call CocRequest('tslint', 'textDocument/tslint/allFixes', + \ {'textDocument': {'uri': 'file:///tmp'}}) +< + Vim error will be raised if the response contains an error. + + *CocRequestAsync()* + +CocRequestAsync({id}, {method}, [{params}, [{callback}]]) + + Send async request to remote language server. + {callback} function is called with error and response. + +CocNotify({id}, {method}, [{params}]) *CocNotify()* + + Send notification to remote language server, example: +> + call CocNotify('ccls', '$ccls/reload') +< + *CocRegisterNotification()* + +CocRegisterNotification({id}, {method}, {callback}) + + Register notification callback for specified client {id} and {method}, + example: > + + autocmd User CocNvimInit call CocRegisterNotification('ccls', + \ '$ccls/publishSemanticHighlight', function('s:Handler')) +< + {callback} is called with single param as notification result. + + Note: when register notification with same {id} and {method}, only the + later registered would work. + + *CocLocations()* + +CocLocations({id}, {method}, [{params}, {openCommand}]) + + Send location request to language client of {id} with + {method} and optional {params}. e.g.: > + + call CocLocations('ccls', '$ccls/call', {'callee': v:true}) + + call CocLocations('ccls', '$ccls/call', {}, 'vsplit') +< + {openCommand}: optional command to open buffer, default to + `coc.preferences.jumpCommand` , |:edit| by default. When it's + `v:false` locations list would always used. + + *CocLocationsAsync()* + +CocLocationsAsync({id}, {method}, [{params}, {openCommand}]) + + Same as |CocLocations()|, but send notification to server instead + of request. + + +CocAction({action}, [...{args}]) *CocAction()* + + Run {action} of coc with optional extra {args}. + + Checkout |coc-actions| for available actions. + + Note: it's recommended to use |CocActionAsync()| unless you have to + block your vim. + + *CocActionAsync()* + +CocActionAsync({action}, [...{args}, [{callback}]]) + + Call CocAction by send notification to NodeJS process of coc.nvim. + + When callback function exists as the last argument, the callback + function is called with `error` string as the first argument and + `resutl` as the second argument. When no callback exists, error + message would be echoed. + + Checkout |coc-actions| for available actions. + +CocHasProvider({feature}) *CocHasProvider()* + + Check if provider exists for specified feature of current buffer. + Supported features: + + `rename` `onTypeEdit` `documentLink` `documentColor` `foldingRange` + `format` `codeAction` `workspaceSymbols` `formatRange` `hover` + `signature` `documentSymbol` `documentHighlight` `definition` + `declaration` `typeDefinition` `reference` `implementation` `codeLens` + `selectionRange` + +CocTagFunc({pattern}, {flags}, {info}) *CocTagFunc()* + + Used for vim's 'tagfunc' option, to make tag search by |CTRL-]| use + coc.nvim as provider, tag search would be performed when no result + from coc.nvim. + + Make sure your vim support 'tagfunc' by +> + :echo exists('&tagfunc') +< +-------------------------------------------------------------------------------- + *coc-actions* +Available Actions ~ + +Acceptable {action} names for |CocAction()| and |CocActionAsync()|. + +"addWorkspaceFolder" {folder} *CocAction('addWorkspaceFolder')* + + Add {folder} to workspace folders, {folder} should be exists directory + on file system. + +"ensureDocument" *CocAction('ensureDocument')* + + Ensure current document is attached to coc.nvim + |coc-document-attached|, should be used when you need invoke action of + current document on buffer create. + + Return |v:false| when document can't be attached. + +"diagnosticList" *CocAction('diagnosticList')* + + Get all diagnostic items of the current Neovim session. + +"diagnosticInfo" *CocAction('diagnosticInfo')* + + Show diagnostic message at the current position, do not truncate. + +"diagnosticToggle" [{enable}] *CocAction('diagnosticToggle')* + + Enable/disable diagnostics on the fly, not work when `displayByAle` is + enabled. You can toggle by specifying {enable}. {enable} can be 0 or 1 + +"diagnosticToggleBuffer" [{bufnr}] [{enable}] *CocAction('diagnosticToggleBuffer')* + + Toggle diagnostics for specific buffer, current buffer is used when + {bufnr} not provided. 0 for current buffer + You can toggle by specifying {enable}. {enable} can be 0 or 1 + + Note: this will only affect diagnostics shown in the UI, list of all + diagnostics won't change. + +"diagnosticPreview" *CocAction('diagnosticPreview')* + + Show diagnostics under current cursor in preview window. + +"diagnosticRefresh" [{bufnr}] *CocAction('diagnosticRefresh')* + + Force refresh diagnostics for special buffer with {bufnr} or all buffers + when {bufnr} doesn't exist, returns `v:null` before diagnostics are shown. + + NOTE: Will refresh in any mode. + + Useful when `diagnostic.autoRefresh` is `false`. + +"sourceStat" *CocAction('sourceStat')* + + get the list of completion source stats for the current buffer. + +"toggleSource" {source} *CocAction('toggleSource')* + + enable/disable {source}. + +"definitions" *CocAction('definitions')* + + Get definition locations of symbol under cursor. + Return LSP `Location[]` + +"declarations" *CocAction('declarations')* + + Get declaration location(s) of symbol under cursor. + Return LSP `Location | Location[] | LocationLink[]` + +"implementations" *CocAction('implementations')* + + Get implementation locations of symbol under cursor. + Return LSP `Location[]` + +"typeDefinitions" *CocAction('typeDefinitions')* + + Get type definition locations of symbol under cursor. + Return LSP `Location[]` + +"references" [{excludeDeclaration}] *CocAction('references')* + + Get references location list of symbol under cursor. + + {excludeDeclaration}: exclude declaration locations when not zero. + + Return LSP `Location[]` + +"jumpDefinition" [{openCommand}] *CocAction('jumpDefinition')* + + jump to definition locations of the current symbol. + Return `v:false` when location not found. + + |coc-list-location| is used when more than one position is available, + for custom location list, use variable: |g:coc_enable_locationlist|. + + To always use |coc-list-location|| for locations, use `v:false` for + {openCommand}. + + {openCommand}: optional command to open buffer, default to + `coc.preferences.jumpCommand` in `coc-settings.json` + +"jumpDeclaration" [{openCommand}] *CocAction('jumpDeclaration')* + + jump to declaration locations of the current symbol. + Return `v:false` when location not found. + + same behavior as "jumpDefinition". + + When {openCommand} is `v:false`, location list would be always used. + +"jumpImplementation" [{openCommand}] *CocAction('jumpImplementation')* + + Jump to implementation locations of the current symbol. + Return `v:false` when location not found. + + same behavior as "jumpDefinition" + +"jumpTypeDefinition" [{openCommand}] *CocAction('jumpTypeDefinition')* + + Jump to type definition locations of the current symbol. + Return `v:false` when location not found. + + same behavior as "jumpDefinition" + +"jumpReferences" [{openCommand}] *CocAction('jumpReferences')* + + Jump to references locations of the current symbol, use + |CocAction('jumpUsed')| to exclude declaration locations. + + Return `v:false` when location not found. + + same behavior as "jumpDefinition" + +"jumpUsed" [{openCommand}] *CocAction('jumpUsed')* + + Jump references locations without declarations. + + same behavior as "jumpDefinition" + +"getHover" [{hoverLocation}] *CocAction('getHover')* + + Get documentation text array on {hoverLocation} or current position, + returns array of string. + + {hoverLocation} could contains: + โ€ข bufnr: optional buffer number. + โ€ข line: 1 based line number. + โ€ข col: 1 based col number + + Throw error when buffer with bufnr is not attached. + +"doHover" [{hoverTarget}] *CocAction('doHover')* + + Show documentation of current symbol, return `v:false` when hover not + found. + + {hoverTarget}: optional specification for where to show hover info, + defaults to `coc.preferences.hoverTarget` in `coc-settings.json`. + Valid options: ["preview", "echo", "float"] + +"definitionHover" [{hoverTarget}] *CocAction('definitionHover')* + + Same as |CocAction('doHover')|, but includes definition contents from + definition provider when possible. + +"showSignatureHelp" *CocAction('showSignatureHelp')* + + Echo signature help of current function, return `v:false` when + signature not found. You may want to set up an autocmd like this: > + + autocmd User CocJumpPlaceholder call + \ CocActionAsync('showSignatureHelp') +< +"getCurrentFunctionSymbol" *CocAction('getCurrentFunctionSymbol')* + + Return the function string that current cursor in. + +"documentSymbols" [{bufnr}] *CocAction('documentSymbols')* + + Get a list of symbols of current buffer or specific {bufnr}. + +"rename" *CocAction('rename')* + + Rename the symbol under the cursor position, |coc-dialog-input| would + be shown for prompt a new name. + + Show error message when the provider not found or prepare rename + failed. + + The buffers are not saved after apply workspace edits, use |:wa| to + save all buffers. It's possible to undo/redo and inspect the changes, + see |coc-workspace-edits|. + + Note: coc.nvim supports rename for disk files, but your language server + may not. + +"refactor" *CocAction('refactor')* + + Open refactor windows with current symbol as activated cursor ranges. + Check |coc-config-cursors| and |coc-config-refactor| for related + configuration. Use |coc-config-workspace-openResourceCommand| for + command to open buffers on save. + + Use to open buffer at current position in split window. + Use to invoke tab open or remove action with current chunk. + +"format" *CocAction('format')* + + Format current buffer using the language server. + Return `v:false` when format failed. + +"formatSelected" [{mode}] *CocAction('formatSelected')* + + Format the selected range, {mode} should be one of visual mode: `v` , + `V`, `char`, `line`. + + When {mode} is omitted, it should be called using |formatexpr|. + +"snippetInsert" {range} {snippet} [{mode}] *CocAction('snippetInsert')* + + Insert {snippet} text as specific {range} of current buffer. + + {range} should be valid LSP range like: +> + // all 0 based utf16 unit code index. + {"start": {"line": 0, "character": 1}, "end": {"line": 0, "character": 3}} +< + {snippet} is the textmate format snippet text used by VSCode. + + {mode} could be 1 or 2, use 1 to disable format of snippet. + +"selectionRanges" *CocAction('selectionRanges')* + + Get selection ranges of current position from language server. + +"services" *CocAction('services')* + + Get an information list for all services. + +"toggleService" {serviceId} *CocAction('toggleService')* + + Start or stop a service. + +"codeAction" [{mode}] [{only}] [{include_disabled}] *CocAction('codeAction')* + + Prompt for a code action and do it. + + {mode} could be `currline` or `cursor` or result of |visualmode()|, + current buffer range is used when it's empty string. + + {only} can be title of a codeAction or list of CodeActionKind. + + {include_disabled} include disabled actions when is truth value. + +"codeActionRange" {start} {end} [{kind}] *CocAction('codeActionRange')* + + Run code action for range. + + {start} Start line number of range. + {end} End line number of range. + {kind} Code action kind, see |CocAction('codeActions')| for available + action kind. + + Can be used to create commands like: > + + command! -nargs=* -range CocAction :call CocActionAsync('codeActionRange', , , ) + command! -nargs=* -range CocFix :call CocActionAsync('codeActionRange', , , 'quickfix') +< +"codeLensAction" *CocAction('codeLensAction')* + + Invoke the command for codeLens of current line (or the line that + contains codeLens just above). Prompt would be shown when multiple + actions are available. + +"commands" *CocAction('commands')* + + Get a list of available service commands for the current buffer. + +"runCommand" [{name}] [...{args}] *CocAction('runCommand')* + + Run a global command provided by the language server. If {name} is not + provided, a prompt with a list of commands is shown to be selected. + + {args} are passed as arguments of command. + + You can bind your custom command like so: > + + command! -nargs=0 OrganizeImport + \ :call CocActionAsync('runCommand', 'tsserver.organizeImports') +< +"fold" {{kind}} *CocAction('fold')* + + Fold the current buffer, optionally use {kind} for specific + FoldingRangeKind. + {kind} could be 'comment', 'imports' or 'region'. + + Return `v:false` when failed. + + You can create a custom command like: > + + command! -nargs=? Fold :call CocAction('fold', ) +< +"highlight" *CocAction('highlight')* + + Highlight the symbols under the cursor. + +"openLink" [{command}] *CocAction('openLink')* + + Open a link under the cursor with {command}. + {command} default to `edit`. + + File and URL links are supported, return `v:false` when failed. + + URI under cursor would be searched when no link returned from the + "documentLink" provider. + + Configure |g:coc_open_url_command| for custom command to open remote + url. + +"links" *CocAction('links')* + + Return document link list of current buffer. + +"extensionStats" *CocAction('extensionStats')* + + Get all extension states as a list. Including `id`, `root` and + `state`. + + State could be `disabled`, `activated` and `loaded`. + +"toggleExtension" {id} *CocAction('toggleExtension')* + + Enable/disable an extension. + +"uninstallExtension" {id} *CocAction('uninstallExtension')* + + Uninstall an extension. + +"reloadExtension" {id} *CocAction('reloadExtension')* + + Reload an activated extension. + +"activeExtension" {id} *CocAction('activeExtension')* + + Activate extension of {id}. + +"deactivateExtension" {id} *CocAction('deactivateExtension')* + + Deactivate extension of {id}. + +"pickColor" *CocAction('pickColor')* + + Change the color at the current cursor position, requires + `documentColor` provider |CocHasProvider|. + + Note: only works on mac or when you have python support on Vim and + have the GTK module installed. + +"colorPresentation" *CocAction('colorPresentation')* + + Change the color presentation at the current color position, requires + `documentColor` provider |CocHasProvider|. + +"codeActions" [{mode}] [{only}] *CocAction('codeActions')* + + Get codeActions list of current document. + + {mode} can be result of |visualmode()| for visual selected + range. When it's falsy value, current file is used as range. + + {only} can be array of codeActionKind, possible values including: + - 'refactor': Base kind for refactoring actions + - 'quickfix': base kind for quickfix actions + - 'refactor.extract': Base kind for refactoring extraction actions + - 'refactor.inline': Base kind for refactoring inline actions + - 'refactor.rewrite': Base kind for refactoring rewrite actions + - 'source': Base kind for source actions + - 'source.organizeImports': Base kind for an organize imports source + action + - 'source.fixAll': Base kind for auto-fix source actions + + {only} can also be string, which means filter by title of codeAction. + +"organizeImport" *CocAction('organizeImport')* + + Run organize import code action for current buffer. + Return `false` when the code action not exists. + +"fixAll" *CocAction('fixAll')* + + Run fixAll codeAction for current buffer. + Show warning when codeAction not found. + + +"quickfixes" [{visualmode}] *CocAction('quickfixes')* + + Get quickfix codeActions of current buffer. + + Add {visualmode} as second argument get quickfix actions with range of + latest |visualmode()| + +"doCodeAction" {codeAction} *CocAction('doCodeAction')* + + Do a codeAction. + +"doQuickfix" *CocAction('doQuickfix')* + + Do the first preferred quickfix action on current line. + + Throw error when no quickfix action found. + +"addRanges" {ranges} *CocAction('addRanges')* + + Ranges must be provided as array of range type: https://git.io/fjiEG + +"getWordEdit" *CocAction('getWordEdit')* + + Get workspaceEdit of current word, language server used when possible, + extract word from current buffer as fallback. + +"getWorkspaceSymbols" {input} *CocAction('getWorkspaceSymbols')* + + Get workspace symbols from {input}. + +"resolveWorkspaceSymbol" {symbol} *CocAction('resolveWorkspaceSymbol')* + + Resolve location for workspace {symbol}. + +"showOutline" [{keep}] *CocAction('showOutline')* + + Show |coc-outline| for current buffer. Does nothing when outline + window already shown for current buffer. + + {keep} override `"outline.keepWindow"` configuration when specified. + Could be 0 or 1. + + Returns after window is shown (document symbol request is still in + progress). + +"hideOutline" *CocAction('hideOutline')* + + Close |coc-outline| on current tab. Throws vim error when it can't + be closed by vim. + +"incomingCalls" [{CallHierarchyItem}] *CocAction('incomingCalls')* + + Retrieve incoming calls from {CallHierarchyItem} or current position + when not provided. + +"outgoingCalls" [{CallHierarchyItem}] *CocAction('outgoingCalls')* + + Retrieve outgoing calls from {CallHierarchyItem} or current position + when not provided. + +"showIncomingCalls" *CocAction('showIncomingCalls')* + + Show incoming calls of current function with |coc-tree|, see + |coc-callHierarchy| + +"showOutgoingCalls" *CocAction('showOutgoingCalls')* + + Show outgoing calls of current function with |coc-tree|. + +"showSuperTypes" *CocAction('showSuperTypes')* + + Show super types of types under cursor with |coc-tree|, see + |coc-typeHierarchy|. A warning is shown when no types found under + cursor. + +"showSubTypes" *CocAction('showSubTypes')* + + Show sub types of types under cursor with |coc-tree|, see + |coc-typeHierarchy|. A warning is shown when no types found under + cursor. + +"semanticHighlight" *CocAction('semanticHighlight')* + + Request semantic tokens highlight for current buffer. + +"inspectSemanticToken" *CocAction('inspectSemanticToken')* + + Inspect semantic token information at cursor position. + +"rangeSelect" {visualmode} {forward} *CocAction('rangeSelect')* + + Visual select previous or next selection range, requires + `selectionRange` provider. + + {visualmode} should be result of {visualmode} or "" for current cursor + position. + {forward} select backward when it's falsy value. + +-------------------------------------------------------------------------------- +COMMANDS *coc-commands* + +:CocStart *:CocStart* + + Start the coc.nvim server, do nothing if the server already started. + +:CocRestart *:CocRestart* + + Restart coc.nvim service. + + Use this command when you want coc to start all over again. + +:CocPrintErrors *:CocPrintErrors* + + Show errors from stderr of NodeJS process in a split window. + +:CocDisable *:CocDisable* + + Disable handling vim events, useful for debug performance issues. + + To disable dynamic autocmds registered by extensions, use: +> + :autocmd! coc_dynamic_autocmd +< +:CocEnable *:CocEnable* + + Enable handling vim events. + +:CocConfig *:CocConfig* + + Edit the user config file `.vim/coc-settings.json` in + |coc#util#get_config_home()| + +:CocLocalConfig *:CocLocalConfig* + + Edit or create `.vim/coc-settings.json` in current workspace folder. + +:CocInstall [{option}] {name} ... *:CocInstall* + + Install one or more coc extensions. + + {option}: could be `-sync` for use blocked process to download instead + of terminal. + + Examples: > + + " Install latest coc-omni + :CocInstall coc-omni + " Install coc-omni 1.0.0 + :CocInstall coc-omni@1.0.0 + " Install snippet extension from github + :CocInstall https://github.com/dsznajder/vscode-es7-javascript-react-snippets +< +:CocUninstall {name} *:CocUninstall* + + Uninstall an extension, use to complete the extension + name. + + Note: the data create by extension is not cleaned up, you may have to + manually remove them. + +:CocUpdate *:CocUpdate* + + Update all coc extensions to the latest version. + +:CocUpdateSync *:CocUpdateSync* + + Block version of update coc extensions. + +:CocCommand {name} [{args}] ... *:CocCommand* + + Run a command contributed by extensions, use `` for name + completion. + +:CocOpenLog *:CocOpenLog* + + Open log file of coc.nvim. + + Use environmental variable `NVIM_COC_LOG_FILE` for fixed log file. + Note: the log would be cleared when coc.nvim started. + + Use environment variable `NVIM_COC_LOG_LEVEL` to change log level + (default 'info', could be 'all', 'trace', 'debug', 'info', + 'warn', 'error', 'off'). + Use shell command: > + + export NVIM_COC_LOG_LEVEL=debug +< + or add: > + + let $NVIM_COC_LOG_LEVEL='debug' +< + to your `.vimrc` + +:CocInfo *:CocInfo* + + Show version and log information in a split window, useful for + submitting a bug report. + +:CocDiagnostics [height] *:CocDiagnostics* + + Open vim's |location-list| with diagnostics of current buffer. The + location list is automatically updated by default. When multiple + location list are opened for one buffer, only first one would be + automatically updated. + +:CocSearch *:CocSearch* + + Perform search by ripgrep https://github.com/BurntSushi/ripgrep, + refactor window would be opened. + + Note: the search is performed on your files, so normally you should + save your buffers before invoke this command. + + Common arguments for ripgrep:~ + + `-e` `--regexp`: treat search pattern as regexp. + `-F` `--fixed-strings`: treat search pattern as fixed string. + `-L` `--follow`: follow symbolic links while traversing directories. + `-g` `--glob` {GLOB}: Include or exclude files and directories for + searching that match the given glob. + `--hidden`: Search hidden files and directories. + `--no-ignore-vcs`: Don't respect version control ignore files + (.gitignore, etc.). + `--no-ignore`: Don't respect ignore files (.gitignore, .ignore, etc.). + `-w` `--word-regexp`: Only show matches surrounded by word boundaries. + `-S` `--smart-case`: Searches case insensitively if the pattern is all + lowercase. Search case sensitively otherwise. + `--no-config`: Never read configuration files. + `-x` `--line-regexp`: Only show matches surrounded by line boundaries. + + Use `:man 1 rg` in your terminal for more details. + + Note: By default, hidden files and directories are skipped. + + Note: By default, vcs ignore files including `.gitignore` and + `.ignore` are respected + + Escape arguments:~ + + || is used to convert command line arguments to arguments of + rg, which means you have to escape space for single argument. For + example, if you want to search `import { Neovim` , you have to use: +> + :CocSearch import\ \{\ Neovim +< + The escape for `{` is required because rg use regexp be default, or: +> + :CocSearch -F import\ {\ Neovim +< + for strict match. + + Change and save:~ + + Refactor session is started with searched patterns highlighted, just + change the text and save refactor buffer to make changes across all + related files. You can make any kind of changes, including add lines + and remove lines. + +:CocWatch [extension] *:CocWatch* + + Watch loaded [extension] for reload on file change, use for + complete extension id. + +:CocOutline *:CocOutline* + + Invoke |CocAction('showOutline')| by notification. + +-------------------------------------------------------------------------------- +AUTOCMD *coc-autocmds* + + *CocLocationsChange* + +:autocmd User CocLocationsChange {command} + + For building a custom view of locations, set + |g:coc_enable_locationlist| to 0 and use this autocmd with with + |g:coc_jump_locations| + + For example, to disable auto preview of location list, use: +> + let g:coc_enable_locationlist = 0 + autocmd User CocLocationsChange CocList --normal location +< + *CocNvimInit* +:autocmd User CocNvimInit {command} + + Triggered after the coc services have started. + + If you want to trigger an action of coc after Vim has started, this + autocmd should be used because coc is always started asynchronously. + + *CocStatusChange* + +:autocmd User CocStatusChange {command} + + Triggered after |g:coc_status| changed, can be used for refresh + statusline. + + *CocDiagnosticChange* + +:autocmd User CocDiagnosticChange {command} + + Triggered after the diagnostic status has changed. + + Could be used for updating the statusline. + + *CocJumpPlaceholder* + +:autocmd User CocJumpPlaceholder {command} + + Triggered after a jump to a placeholder. Can be used for + showing signature help like: > + + autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') +< + *CocOpenFloat* + +:autocmd User CocOpenFloat {command} + + Triggered when a floating window is opened. The window is not + focused, use |g:coc_last_float_win| to get window id. + + *CocOpenFloatPrompt* + +:autocmd User CocOpenFloatPrompt {command} + + Triggered when a floating prompt window is opened (triggered after + |CocOpenFloat|). + + *CocTerminalOpen* +:autocmd User CocTerminalOpen {command} + + Triggered when the terminal is shown, can be used for adjusting the + window height. + +-------------------------------------------------------------------------------- + +HIGHLIGHTS *coc-highlights* + +The best place to override highlight groups is a file named +after/colors/ .vim in your 'runtimepath' (e.g., +~/.config/nvim/after/colors/solarized.vim). Example declaration: +> + " make error texts have a red color + highlight CocErrorHighlight ctermfg=Red guifg=#ff0000 +< +Use |:highlight| with group name to check current highlight. + +Note: don't use `:hi default` for overwriting the highlights. + +Note: user defined highlight commands should appear after the |:colorscheme| +command and use |ColorScheme| autocmd to make sure customized highlights works +after color scheme change. + +Markdown related~ + +*CocBold* for bold text. +*CocItalic* for italic text. +*CocUnderline* for underlined text. +*CocStrikeThrough* for strikethrough text, like usage of deprecated API. +*CocMarkdownCode* for inline code in markdown content. +*CocMarkdownHeader* for markdown header in floating window/popup. +*CocMarkdownLink* for markdown link text in floating window/popup. + +Diagnostics related~ + *coc-highlights-diagnostics* + +*CocFadeOut* for faded out text, such as for highlighting unnecessary code. +*CocErrorSign* for error signs. +*CocWarningSign* for warning signs. +*CocInfoSign* for information signs. +*CocHintSign* for hint signs. +*CocErrorVirtualText* for error virtual text. +*CocWarningVirtualText* for warning virtual text. +*CocInfoVirtualText* for information virtual text. +*CocHintVirtualText* for hint virtual text. +*CocErrorHighlight* for error code range. +*CocWarningHighlight* for warning code range. +*CocInfoHighlight* for information code range. +*CocHintHighlight* for hint code range. +*CocDeprecatedHighlight* for deprecated code range, links to +|CocStrikeThrough| by default. +*CocUnusedHighlight* for unnecessary code range, links to |CocFadeOut| by +default. +*CocErrorLine* line highlight of sign which contains error. +*CocWarningLine* line highlight of sign which contains warning. +*CocInfoLine* line highlight of sign which information. +*CocHintLine* line highlight of sign which contains hint. + +Highlight with higher priority would overwrite highlight with lower priority. +The priority order: + + |CocUnusedHighlight| > |CocDeprecatedHighlight| > |CocErrorHighlight| + > |CocWarningHighlight| > |CocInfoHighlight| > |CocHintHighlight| + +Document highlight related~ + *coc-highlights-document* + +Highlights used for highlighting same symbols in the buffer at the current +cursor position. + +*CocHighlightText* default symbol highlight. +*CocHighlightRead* for `Read` kind of document symbol. +*CocHighlightWrite* for `Write` kind of document symbol. + +Float window/popup related~ + *coc-highlights-float* + +*CocFloating* default highlight group of floating windows/popups. +Default links to |NormalFloat| on neovim and |Pmenu| on vim. +*CocFloatThumb* thumb highlight of scrollbar. +*CocFloatSbar* Scrollbar highlight of floating window/popups. +*CocFloatDividingLine* for dividing lines, links to |NonText| by default. +*CocFloatActive* for activated text, links to |CocSearch| by default. +*CocErrorFloat* for error text in floating windows/popups. +*CocHintFloat* for hint text in floating windows/popups. + +Inlay hint related~ + *coc-highlights-inlayHint* + +*CocInlayHint* for highlight inlay hint virtual text block, default uses +foreground from |CocHintSign| and background from |SignColumn| +*CocInlayHintParameter* for parameter kind of inlay hint. +*CocInlayHintType* for type kind of inlay hint. + +Notification window/popup related~ + +CocNotification *CocNotification* + +*CocNotificationProgress* for progress line in progress notification. +*CocNotificationButton* for action buttons in notification window. +*CocNotificationError* for highlight border of error notification. +*CocNotificationWarning* for highlight border of warning notification. +*CocNotificationInfo* for highlight border of info notification. + +List related~ + *CocList* + +*CocSearch* for matched characters. +*CocListLine* for current cursor line. +*CocListSearch* for matched characters. +*CocListMode* for mode text in the statusline. +*CocListPath* for cwd text in the statusline. +*CocSelectedText* for sign text of selected lines (multiple selection only). +*CocSelectedLine* for line highlight of selected lines (multiple selection only). + +Tree view related~ + +CocTree *CocTree* + +*CocTreeTitle* for title in tree view. +*CocTreeDescription* for description beside label. +*CocTreeOpenClose* for open and close icon in tree view. +*CocTreeSelected* for highlight lines contains selected node. + +Popup menu related~ + *CocPum* +*CocPumSearch* for matched input characters, linked to |CocSearch| by default. +*CocPumDetail* for highlight label details that follows label (including +possible detail and description). +*CocPumMenu* for menu of complete item. +*CocPumShortcut* for shortcut text of source. +*CocPumDeprecated* for deprecated label. +*CocPumVirtualText* for virtual text which enabled by +|coc-config-suggest-virtualText| + +Symbol icons~ + +CocSymbol *CocSymbol* + +Highlight groups for symbol icons, including `CompletionItemKind` and +`SymbolKind` of LSP. The highlight groups link to related |nvim-treesitter| +highlight groups when possible and fallback to builtin highlight groups. + +*CocSymbolDefault* linked to |hl-MoreMsg| by default. +*CocSymbolText* +*CocSymbolUnit* +*CocSymbolValue* +*CocSymbolKeyword* +*CocSymbolSnippet* +*CocSymbolColor* +*CocSymbolReference* +*CocSymbolFolder* +*CocSymbolFile* +*CocSymbolModule* +*CocSymbolNamespace* +*CocSymbolPackage* +*CocSymbolClass* +*CocSymbolMethod* +*CocSymbolProperty* +*CocSymbolField* +*CocSymbolConstructor* +*CocSymbolEnum* +*CocSymbolInterface* +*CocSymbolFunction* +*CocSymbolVariable* +*CocSymbolConstant* +*CocSymbolString* +*CocSymbolNumber* +*CocSymbolBoolean* +*CocSymbolArray* +*CocSymbolObject* +*CocSymbolKey* +*CocSymbolNull* +*CocSymbolEnumMember* +*CocSymbolStruct* +*CocSymbolEvent* +*CocSymbolOperator* +*CocSymbolTypeParameter* + +Note: Use configuration |coc-config-suggest-completionItemKindLabels| for customized icon +characters. + +Semantic token highlight groups~ + *CocSem* + +Semantic highlight groups are starts with `CocSem` which link to related +|nvim-treesitter| highlight groups when possible and fallback to builtin +highlight groups, use variable |g:coc_default_semantic_highlight_groups| to +disable creation of these highlight groups. + +Only semantic tokens types and `deprecated` modifier have default +highlight groups. + +You need create highlight groups for highlight other modifiers and/or specific +modifier with type, for example: +> + " Add highlights for defaultLibrary modifier + hi link CocSemDefaultLibrary TSOtherDefaultLibrary + hi link CocSemDefaultLibraryClass TSTypeDefaultLibrary + hi link CocSemDefaultLibraryInterface TSTypeDefaultLibrary + hi link CocSemDefaultLibraryEnum TSTypeDefaultLibrary + hi link CocSemDefaultLibraryType TSTypeDefaultLibrary + hi link CocSemDefaultLibraryNamespace TSTypeDefaultLibrary + + " Add highlights for declaration modifier + hi link CocSemDeclaration TSOtherDeclaration + hi link CocSemDeclarationClass TSTypeDeclaration + hi link CocSemDeclarationInterface TSTypeDeclaration + hi link CocSemDeclarationEnum TSTypeDeclaration + hi link CocSemDeclarationType TSTypeDeclaration + hi link CocSemDeclarationNamespace TSTypeDeclaration +< +The modifier highlight groups have higher priority. + +Others~ + +*CocDisabled* highlight for disabled items, eg: menu item. +*CocCodeLens* for virtual text of codeLens. +*CocCursorRange* for highlight of activated cursors ranges. +*CocLinkedEditing* for highlight of activated linked editing ranges. +*CocHoverRange* for range of current hovered symbol. +*CocMenuSel* for current menu item in menu dialog (should only provide +background color). +*CocSelectedRange* for highlight ranges of outgoing calls. +*CocSnippetVisual* for highlight snippet placeholders. +*CocLink* for highlight document links. +*CocInputBoxVirtualText* for highlight placeholder of input box. + +============================================================================== +TREE SUPPORT *coc-tree* + +Tree view is used for render outline and call hierarchy, following features +are supported: + + โ€ข Data update while keep tree node open/close state. + โ€ข Auto refresh on load error. + โ€ข Click open/close icon to toggle collapse state. + โ€ข Click node to invoke default command. + โ€ข Show tooltip in float window on |CursorHold| when possible. + โ€ข Key-mappings support |coc-tree-mappings| + โ€ข Optional multiple selection. + โ€ข Optional node reveal support. + โ€ข Optional fuzzy filter support. + โ€ข Provide API `window.createTreeView` for extensions. + +Check |coc-config-tree| for related configurations. + +The filetype is `'coctree'`, which can be used to overwrite buffer and window +options. + +Use variable |w:cocViewId| to detect the kind of tree. + +-------------------------------------------------------------------------------- + +TREE KEY MAPPINGS *coc-tree-mappings* + +Default key-mappings are provided for 'coctree' buffer, which can be changed +by configuration |coc-config-tree|. + + - Select/unselect item, configured by `"tree.key.toggleSelection"`. + - Invoke actions of current item, configured by `"tree.key.actions"`. + - Close tree window, configured by `"tree.key.close"`. + - Invoke command of current item, configured by `"tree.key.invoke"`. + - Move cursor to original window. +f - Activate filter, configured by `"tree.key.activeFilter"`. +t - Trigger key to toggle expand state of tree node, configured by + `tree.key.toggle`. +M - Collapse all tree node, configured by `"tree.key.collapseAll"`. + +-------------------------------------------------------------------------------- + +TREE FILTER *coc-tree-filter* + +Filter mode is used for search for specific node by fuzzy filter, invoke the +key configured by `"tree.key.activeFilter"` to activate filter mode. + +Note: some tree views not have filter mode supported. + +When filter mode is activated, type normal character to insert filter input +and following special keys are supported: + + - Delete last filter character when possible. + - Delete last filter character when possible. + - Clean up filter text. + - Navigate to previous filter text (stored on command invoke). + - Navigate to next filter text (stored on command invoke). + - exit filter mode. + - exit filter mode. + or `"tree.key.selectPrevious"` - Select previous node. + or `"tree.key.selectNext"` - Select next node. + or `"key.key.invoke"` - Invoke command of selected node. + +============================================================================== +LIST SUPPORT *coc-list* + +Built-in list support to make working with lists of items easier. + +The following features are supported: + + โ€ข Insert & normal mode. + โ€ข Default key-mappings for insert & normal mode. + โ€ข Customize key-mappings for insert & normal mode. + โ€ข Commands for reopening & doing actions with a previous list. + โ€ข Different match modes. + โ€ข Interactive mode. + โ€ข Auto preview on cursor move. + โ€ข Number select support. + โ€ข Built-in actions for locations. + โ€ข Parse ANSI code. + โ€ข Mouse support. + โ€ข Select actions using . + โ€ข Multiple selections using in normal mode. + โ€ข Select lines by visual selection. + +-------------------------------------------------------------------------------- + +LIST COMMAND *coc-list-command* + +:CocList [{...options}] [{source}] [{...args}] *:CocList* + + Open coc list of {source}, example: > + + :CocList --normal location +< + For current jump locations. + + For {options}, see |coc-list-options|. + + Also check |coc-config-list| for list configuration. + + {args} are sent to source during the fetching of list. + Press `?` on normal mode to get supported {args} of current + list. + + When {source} is empty, the lists source with list of sources is used. + +:CocListResume [{name}] *:CocListResume* + + Reopen last opened list, input and cursor position will be preserved. + +:CocListCancel *:CocListCancel* + + Close list, useful when the list is not the current window. + +:CocPrev [{name}] *:CocPrev* + + Invoke default action for the previous item in the last {name} list. + + Doesn't open the list window if it's closed. + +:CocNext [{name}] *:CocNext* + + Invoke the default action for the next item in the last {name} list. + + Doesn't open the list window if it's closed. + +:CocFirst [{name}] *:CocFirst* + + Invoke default action for first item in the last {name} list. + +:CocLast [{name}] *:CocLast* + + Invoke default action for last item in the last {name} list. + + *coc-list-options* +Options of CocList command~ + +----top + Show list as top window. + +----tab + Open list in new tabpage. + +----normal + + Start list in normal mode, recommended for short list. + +----no-sort + Disable sort made by fuzzy score or most recently used, use it when + it's already sorted. + +----input={input} + + Specify the input on session start. + +----height={number} + + Specify the height of list window, override configuration + |coc-config-list-height|. No effect when list opened in new tab by + `--tab`. + +----strict + -S + Use strict matching instead of fuzzy matching. + +----regex + -R + Use regex matching instead of fuzzy matching. + +----ignore-case + + Ignore case when using strict matching or regex matching. + +----number-select + -N + Type a line number to select an item and invoke the default action on + insert mode. Type `0` to select the 10th line. + +----interactive + -I + Use interactive mode, list items would be reloaded on input + change, filter and sort would be done by list implementation. + + Note: only works when the list support interactive mode. + + Note: filtering and sorting would be done by underlying task, which + means options including `--strict`, `--no-sort`, `--regex`, + `--ignore-case` would not work at all. + +----auto-preview + -A + + Start a preview for the current item on the visible list. + +----no-quit + + Not quit list session after invoke action. + + Note: you may need to refresh the list for current state. + +----first + + Invoke default action for first list item on list open. + Nothing happens when the list is empty. + +----reverse + + Reverse the order of list items shown in the window, the bottom line + would shown the first item. + +-------------------------------------------------------------------------------- + +LIST CONFIGURATION *coc-list-configuration* + +Use `coc-settings.json` for configuration of lists. + +Configuration of list starts with 'list.'. + +See |coc-config-list| or type `list.` in your settings file to get completion +list (requires coc-json installed). + +For configuration of a specified list, use section that starts with: +`list.source.{name}`, where `{name}` is the name of list. + +Change default action:~ + +If you want to use `tabe` as default action of symbols list, you can use: +> + // change default action of symbols + "list.source.symbols.defaultAction": "tabe" +< +in your coc-settings.json + +Change default options:~ + +To change |coc-list-options| for source with {name}, use +`list.source.{name}.defaultOptions` configuration like: > + + // make symbols list use normal mode and interactive by default + "list.source.symbols.defaultOptions": ["--interactive", "--number-select"], +< +Note: some list like symbols only work in interactive mode, you must +include `--interactive` in `defaultOptions`. + +Note: default options will not be used when there're options passed +with |:CocList| command. + +Change default arguments:~ + +Use `list.source.{name}.defaultArgs` setting like: > + + // use regex match for grep source + "list.source.grep.defaultArgs": ["-regex"], + +Note: default arguments used only when arguments from |:CocList| command is +empty. + +Note: Type `?` on normal mode to get supported arguments of current list. + +-------------------------------------------------------------------------------- + +LIST MAPPINGS *coc-list-mappings* + +Default mappings on insert mode: + + - Cancel list session. + - Do default action with selected items or current item. + - Stop loading task. + - Paste text from system clipboard. + - Reload list. + - Change to normal mode. + - Select next line. + - Select previous line. + - Move cursor left. + - Move cursor right. + - Move cursor to end of prompt. + - Same as . + - Move cursor to start of prompt. + - Same as . + - Scroll window forward. + - Scroll window backward. + - Remove previous character of cursor. + - Remove previous character of cursor. + - Remove previous word of cursor. + - Remove characters before cursor. + - Navigate to next input in history. + - Navigate to previous input in history. + - Switch matcher for filter items. + - Insert content from vim's register. + - Select action. + +Default mappings on normal mode: + + - Cancel list session. + - Do default action with selected items or current item. + - Stop source from fetching more items. + - Reload list. + - Mark all visible items selected. + - Jump to original window on list create. + - Select action. + - Scroll preview window down. + - Scroll preview window up. + - Toggle selection of current item. +i,I,o,O,a,A - Change to insert mode. +p - Preview action. +: - Cancel the prompt and enter command mode. +? - Show help of current list. +t - Do 'tabe' action. +d - Do 'drop' action. +s - Do 'split' action. + +Use |coc-list-mappings-custom| to override default mappings. + + *coc-list-mappings-custom* + +Configurations `"list.normalMappings"` and `"list.insertMappings"` are used +for customizing the list key-mappings, example: > + + "list.insertMappings": { + "": "do:refresh", + "": "feedkeys:\\", + "": "feedkeys:\\", + "": "normal:j", + "": "normal:k", + "": "action:tabe", + "": "call:MyFunc", + // paste yanked text to prompt + "": "eval:@@" + } + "list.normalMappings": { + "c": "expr:MyExprFunc" + "d": "action:delete" + } +< +Note: you should only use mappings that start with ` can't be remapped for other actions. + +The mapping expression should be `command:arguments`, available commands: + +'do' - special actions provided by coc list, including: + 'refresh' - reload list. + 'selectall' - mark all visible items selected. + 'switch' - switch matcher used for filter items. + 'exit' - exit list session. + 'stop' - stop loading task. + 'cancel' - cancel list session but leave list window open. + 'toggle' - toggle selection of current item. + 'togglemode' - toggle between insert and normal mode. + 'previous' - move cursor to previous item. + 'next' - move cursor to next item. + 'defaultaction' - do default action for selected item(s). + 'chooseaction' - choose action for selected item(s). + 'jumpback' - stop prompt and jump back to original window. + 'previewtoggle' - toggle preview window, requires preview action exists. + 'previewup' - scroll preview window up. + 'previewdown' - scroll preview window down. + 'help' - show help. +'prompt' - do prompt action, including: + 'previous' - change to previous input in history. + 'next' - change to next input in history. + 'start' - move cursor to start. + 'end' - move cursor to end. + 'left' - move cursor left. + 'right' - move cursor right. + 'deleteforward' - remove previous character. + 'deletebackward' - remove next character. + 'removetail' - remove characters afterwards. + 'removeahead' - remove character ahead. + 'removeword' - remove word before cursor. + 'insertregister' - insert content from Vim register. + 'paste' - append text from system clipboard to prompt. +'eval' - append text to prompt from result of VimL expression. +'action' - execute action of list, use to find available actions. +'feedkeys' - feedkeys to list window, use `\\` in JSON to escape special + characters. +'feedkeys!' - feedkeys without remap. +'normal' - execute normal command in list window. +'normal!' - execute normal command without remap. +'command' - execute command. +'call' - call Vim function with |coc-list-context| as only argument. +'expr' - same as 'call' but expect the function return action name. + + *coc-list-context* + +Context argument contains the following properties: + +'name' - name of the list, example: `'location'`. +'args' - arguments of the list. +'input' - current input of prompt. +'winid' - window id on list activated. +'bufnr' - buffer number on list activated. +'targets' - list of selected targets, checkout |coc-list-target| for properties. + + *coc-list-target* + +Target contains the following properties: + +'label' - mandatory property that is shown in the buffer. +'filtertext' - optional filter text used for filtering items. +'location' - optional location of item, check out https://bit.ly/2Rtb6Bo +'data' - optional additional properties. + +-------------------------------------------------------------------------------- + +LIST SOURCES *coc-list-sources* + +-------------------------------------------------------------------------------- + +location *coc-list-location* + + Last jump locations. + + Actions: + + - 'preview' : preview location in preview window. + - 'open': open location by use + `"coc.preferences.jumpCommand"`, default action + - 'tabe': Use |:tabe| to open location. + - 'drop': Use |:drop| to open location. + - 'vsplit': Use |:vsplit| to open location. + - 'split': Use |:split| to open location. + - 'quickfix': Add selected items to Vim's quickfix. + +extensions *coc-list-extensions* + + Manage coc.nvim extensions. + First column in the list window represent the state of extension: + + - "*" means the extension is activated. + - "+" means the extension package json is loaded, but not activated by + load the javascript file. + - "-" means the extension is disabled by 'disable' action. + - "?" means the extension is not recognized by coc.nvim. + + Actions: + + - 'toggle' activate/deactivate extension, default action. + - 'disable' disable extension. + - 'enable' enable extension. + - 'lock' lock/unlock extension to current version. + - 'doc' view extension's README doc. + - 'fix' fix dependencies in terminal buffer. + - 'reload' reload extension. + - 'uninstall' uninstall extension. + +diagnostics *coc-list-diagnostics* + + All diagnostics for the workspace. + + Actions: + + - Same as |coc-list-location| + +folders *coc-list-folders* + + Manage current workspace folders of coc.nvim. + + Actions: + + - 'edit' change the directory of workspace folder. + - 'delete' remove selected workspace folder. + +outline *coc-list-outline* + + Symbols in the current document. + + Actions: + + - Same as |coc-list-location| + +symbols *coc-list-symbols* + + Search workspace symbols. + + Actions: + + - Same as |coc-list-location| + +services *coc-list-services* + + Manage registered services. + + Actions: + + - 'toggle': toggle service state, default action. + +commands *coc-list-commands* + + Workspace commands. + + Actions: + + - 'run': run selected command, default action. + +links *coc-list-links* + + Links in the current document. + + Actions: + + - 'open': open the link, default action. + - 'jump': jump to link definition. + +sources *coc-list-completion-sources* + + Available completion sources. + + Actions: + + - 'toggle': activate/deactivate source, default action. + - 'refresh': refresh source. + - 'open': open the file where source defined. + +lists *coc-list-lists* + + Get available lists. + + Actions: + + - 'open': open selected list, default action. + +============================================================================== + +DIALOG SUPPORT *coc-dialog* + +Dialog is special float window/popup that could response to user actions, +dialog have close button, border, title (optional), bottom buttons(optional). + +Note bottom buttons work different on neovim and vim, on neovim you can +click the button since neovim allows focus of window, on vim you have to type +highlighted character to trigger button callback. + +Note dialog feature requires neovim >= 0.4.0 or vim >= 8.2.0750 to work. + +See |coc-config-dialog| for available configurations. + +-------------------------------------------------------------------------------- + + *coc-dialog-basic* + +A basic dialog is create by Javascript API `window.showDialog` , which is just +some texts with optional buttons. + +-------------------------------------------------------------------------------- + + *coc-dialog-confirm* + +A confirm dialog is used for user to confirm an action, normally created by +`window.showPrompt()` Confirm dialog uses filter feature on vim8 and +|getchar()| on Neovim. + +The difference is you can operate vim on vim8, but not on neovim. + +Supported key-mappings: + + - force cancel, return -1 for callback. +, n, N - reject the action, return 0 for callback. +y,Y - accept the action, return 1 for callback. + +-------------------------------------------------------------------------------- + + *coc-dialog-input* + +An input dialog request user input with optional default value, normally +created by `window.requestInput`, when `"coc.preferences.promptInput"` is +false, vim's command line input prompt is used instead. + +On neovim, it uses float window, on vim8, it opens terminal in popup. + +Supported key-mappings: + + - move cursor to first col. + - move cursor to last col. + - cancel input, null is received by callback. + - accept current input selection of current item. + +QuickPick related (available when created by |coc-dialog-quickpick|). + + - scroll forward quickpick list. + - scroll backward quickpick list. + - move to next item in quickpick list. + - move to previous item in quickpick list. + - toggle selection of current item in quickpick list when +canSelectMany is supported. + +Note on neovim, other insert mode key-mappings could work. + +Note not possible to configure key-mappings on vim8, to customize key-mappings +on neovim, use |CocOpenFloatPrompt| with current buffer. + +-------------------------------------------------------------------------------- + + *coc-dialog-quickpick* + +A quickpick is a input dialog in the middle with a float window/popup contains +filtered list items. + +Fuzzy filter is used by default. + +See |coc-config-dialog| for available configurations. + +See |coc-dialog-input| for available key-mappings. + +-------------------------------------------------------------------------------- + + *coc-dialog-menu* + +A menu dialog is used for pick a single item from list of items, extensions +could use `window.showMenuPicker` to create menu dialog. + +Supported key-mappings: + + - cancel selection. + - confirm selection of current item, use +|dialog.confirmKey| to override. +1-9 - select item with 1 based index. +g - move to first item. +G - move to last item. +j - move to next item. +k - move to previous item. + - scroll forward. + - scroll backward. + +-------------------------------------------------------------------------------- + + *coc-dialog-picker* + +A picker dialog is used for single/multiple selection. On neovim, it's +possible to toggle selection by mouse click inside the bracket. Extensions +could use `window.showPickerDialog` to create picker dialog. + +Supported key-mappings: + + - cancel selection. + - confirm selection of current item, use +|dialog.confirmKey| to override. + - toggle selection of current item. +g - move to first item. +G - move to last item. +j - move to next item. +k - move to previous item. + - scroll forward. + - scroll backward. + +When close button is clicked, the selection is canceled with undefined +result (same as ). + +It's recommended to use |coc-dialog-quickpick| for filter support. + +============================================================================== + +NOTIFICATION SUPPORT *coc-notification* + +Notification windows are created at the bottom right of the screen. + +Notifications are created by Javascript APIs: `window.showErrorMessage()`, +`window.showWarningMessage()`, `window.showInformationMessage()`, +`window.showNotification()` and `window.withProgress()`. + +Possible kind of notifications: 'error', 'warning', 'info' and 'progress'. + +Message notifications (not progress) requires +|coc-preferences-enableMessageDialog| to be `true`. + +Message notifications without actions would be automatically closed after +milliseconds specified by |coc-config-notification-timeout|. + +Use |coc-config-notification-disabledProgressSources| to disable progress +notifications for specific sources. + +Customize notifications:~ + + โ€ข Customize icons: |g:coc_notify| + โ€ข Customize highlights: |CocNotification| + โ€ข Customize configurations: |coc-config-notification| + +Related functions:~ + + โ€ข |coc#notify#close_all()| + โ€ข |coc#notify#do_action()| + โ€ข |coc#notify#copy()| + โ€ข |coc#notify#show_sources()| + โ€ข |coc#notify#keep()| + +============================================================================== + +STATUSLINE SUPPORT *coc-status* + +Diagnostics info and other status info contributed by extensions could be +shown in statusline. + +The easiest way is add `%{coc#status()}` to your 'statusline' option. Example: > + + set statusline^=%{coc#status()} +< +You may need to use |CocStatusChange| for automatically refresh statusline: > + + autocmd User CocStatusChange redrawstatus +< +-------------------------------------------------------------------------------- + + *coc-status-manual* + +Create function: +> + function! StatusDiagnostic() abort + let info = get(b:, 'coc_diagnostic_info', {}) + if empty(info) | return '' | endif + let msgs = [] + if get(info, 'error', 0) + call add(msgs, 'E' . info['error']) + endif + if get(info, 'warning', 0) + call add(msgs, 'W' . info['warning']) + endif + return join(msgs, ' ') . ' ' . get(g:, 'coc_status', '') + endfunction +< +Add `%{StatusDiagnostic()}` to your 'statusline' option. + +-------------------------------------------------------------------------------- + + *coc-status-airline* + +With vim-airline: https://github.com/vim-airline/vim-airline + +See |airline-coc| + +------------------------------------------------------------------------------ + *coc-status-lightline* + +With lightline.vim: https://github.com/itchyny/lightline.vim + +Use configuration like: > + + let g:lightline = { + \ 'colorscheme': 'wombat', + \ 'active': { + \ 'left': [ [ 'mode', 'paste' ], + \ [ 'cocstatus', 'readonly', 'filename', 'modified' ] ] + \ }, + \ 'component_function': { + \ 'cocstatus': 'coc#status' + \ }, + \ } + + " Use autocmd to force lightline update. + autocmd User CocStatusChange,CocDiagnosticChange call lightline#update() +< +============================================================================== +CREATE PLUGINS *coc-plugins* + +There're different ways to extend coc.nvim: + + โ€ข Create vim completion sources |coc-api-vim-source|. + โ€ข Create extensions |coc-api-extension|. + โ€ข Create single file extensions |coc-api-single-file|. + โ€ข Debug coc.nvim extension |coc-api-debug|. + +============================================================================== +FAQ *coc-faq* + +------------------------------------------------------------------------------ + +Check out https://github.com/neoclide/coc.nvim/wiki/F.A.Q + +============================================================================== +CHANGELOG *coc-changelog* + +See ./history.md under project root. + +============================================================================== +vim:tw=78:nosta:noet:ts=8:sts=0:ft=help:noet:fen: diff --git a/pack/acp/opt/coc.nvim/history.md b/pack/acp/opt/coc.nvim/history.md new file mode 100644 index 0000000..e96571d --- /dev/null +++ b/pack/acp/opt/coc.nvim/history.md @@ -0,0 +1,1844 @@ +# 2023-01-30 + +- Always show `cancellable` progress as notification without check + `notification.statusLineProgress`. + +# 2023-01-29 + +- Exclude `source` actions when request code actions with range. +- Any character can be used for channel name. + +# 2023-01-26 + +- Add escape support to `coc#status()`. + +# 2023-01-24 + +- Add `encoding` and `CancellationToken` support for `runCommand` function. + +# 2023-01-23 + +- Make `vscode.open` command work with file uri. +- Cancel option for `workspace.registerExprKeymap()`. +- Support `suggest.filterOnBackspace` configuration. + +# 2023-01-22 + +- `maxRestartCount` configuration for configured language server. + +# 2022-12-25 + +- Create symbol tree from SymbolInformation list. + +# 2022-12-23 + +- Support `URI` as param for API `workspace.jumpTo()`. + +# 2022-12-22 + +- Support popup window for window related APIs. + +# 2022-12-21 + +- When create `CocSem` highlight group, replace invalid character of token types + and token modifiers with underline. + +# 2022-12-20 + +- Export `Buffer.setKeymap` and `Buffer.deleteKeymap` with vim and neovim support. +- Make `workspace.registerLocalKeymap` accept bufnr argument. + +# 2022-12-12 + +- Allow configuration of `window` scoped used by folder configuration file, like + VSCode. +- Add location support for `getHover` action. +- Use unique id for each tab on vim. +- Chinese word segmentation for keywords. + +# 2022-12-05 + +- Add `switchConsole` method to `LanguageClient` + +# 2022-12-03 + +- Add configuration `suggest.insertMode`. + +# 2022-12-02 + +- Expand variables for string configuration value. + +# 2022-11-30 + +- File fragment support for `workspace.jumpTo()`. +- Support `g:coc_open_url_command`. +- Support `contributes.configuration` from extension as array. + +# 2022-11-29 + +- Add documentations for develop of coc.nvim extensions. +- Remove unused variable `g:coc_channel_timeout`. + +# 2022-11-28 + +- Placeholder and update value support for `InputBox` and `QuickPick`. +- `triggerOnly` option property for vim completion source. +- Export `getExtensionById` from `extensions` module. + +# 2022-11-26 + +- Use CTRL-R expression instead of timer for pum related functions: + + - `coc#pum#insert()` + - `coc#pum#one_more()` + - `coc#pum#next()` + - `coc#pum#prev()` + - `coc#pum#stop()` + - `coc#pum#cancel()` + - `coc#pum#confirm()` + +# 2022-11-25 + +- Avoid view change on list create. +- Add configurations `links.enable` and `links.highlight`. +- Use cursorline for list on neovim (to have correct highlight). +- Fix highlight not work on neovim 0.5.0 by use `luaeval`. + +# 2022-11-22 + +- Add command `document.toggleCodeLens`. + +# 2022-11-21 + +- Add `CocAction('addWorkspaceFolder')`. + +# 2022-11-20 + +- Support code lens feature on vim9. +- `codeLens.subseparator` default changed to `|`, like VSCode. +- Add configuration `coc.preferences.enableGFMBreaksInMarkdownDocument`, default to `true` +- Add key-mappings `(coc-codeaction-selected)` and `(coc-codeaction-refactor-selected)`. + +# 2022-11-19 + +- Create highlights after VimEnter. +- Action 'organizeImport' return false instead of throw error when import code + action not found. + +# 2022-11-18 + +- Throw error when rpc request error, instead of echo message. + +# 2022-11-13 + +- Plugin emit ready after extensions activated. + +# 2022-11-12 + +- Not cancel completion when request for in complete sources. + +# 2022-11-11 + +- Support filter and display completion items with different start positions. +- Remove configuration `suggest.fixInsertedWord`, insert word would always + be fixed. +- Configuration `suggest.invalidInsertCharacters` default to line break + characters. + +# 2022-11-10 + +- Not reset 'Search' highlight on float window as it could be used. +- Note remap `` on float preview window. +- Add new action `feedkeys!` to list. +- Add new configuration `list.floatPreview`. + +# 2022-11-07 + +- Add API `CocAction('snippetInsert')` for snippet insert from vim plugin. +- Snippet support for vim source, snippet item should have `isSnippet` to be + `true` and `insertText` to be snippet text, when `on_complete` function exists, + the snippet expand should be handled completion source. + +# 2022-11-06 + +- `window.createQuickPick()` API that show QuickPick by default, call `show()` +- Fix change value property for QuickPick not works. + +# 2022-10-30 + +- Add configuration `colors.enable`, mark `colors.filetypes` deprecated. +- Add command `document.toggleColors` for toggle colors of current buffer. +- Changed filter of completion to use code from VSCode. +- Add configuration `suggest.filterGraceful` + +# 2022-10-39 + +- Add configuration `suggest.enableFloat` back. + +# 2022-10-27 + +- Use `workspace.rootPatterns` replace `coc.preferences.rootPatterns`, old + configuration still works when exists. +- Store configurations with configuration registry. + +# 2022-10-25 + +- Add `--height` support to `CocList`. + +# 2022-10-24 + +- Use builtin static words source for snippet choices. +- Remove configuration `"snippet.choicesMenuPicker"` +- Remove unused internal functions `coc#complete_indent()` and + `coc#_do_complete()` + +# 2022-10-21 + +- Consider utf-16 code unit instead of unicode code point. +- Add `coc#string#character_index()` `coc#string#byte_index()` and + `coc#string#character_length()`. + +# 2022-10-20 + +- Add `coc#pum#one_more()` + +# 2022-10-19 + +- Trigger for trigger sources when no filter results available. + +# 2022-10-18 + +- Change `suggest.maxCompleteItemCount` default to 256. + +# 2022-10-17 + +- Set `g:coc_service_initialized` to `0` before service restart. +- Show warning when diagnostic jump failed. +- Use strwidth.wasm module for string display width. +- Add API `workspace.getDisplayWidth`. + +# 2022-10-15 + +- Add configuration `inlayHint.display`. + +# 2022-10-07 + +- Use `CocFloatActive` for highlight active parameters. + +# 2022-09-28 + +- Limit popupmenu width when exceed screen to &pumwidth, instead of change + completion column. +- Make escape of `${name}` for ultisnip snippets the same behavior as + Ultisnip.vim. + +# 2022-09-27 + +- Use fuzzy.wasm for native fuzzy match. +- Add `binarySearch` and `isFalsyOrEmpty` functions for array. +- `suggest.localityBonus` works like VSCode, using selection ranges. +- Add and export `workspace.computeWordRanges`. +- Rework keywords parse for better performance (parse changed lines only and use + yield to reduce iteration). + +# 2022-09-12 + +- All configurations are now scoped #4185 +- No `onDidChangeConfiguration` event fired when workspace folder changed. +- Deprecated configuration `suggest.detailMaxLength`, use `suggest.labelMaxLength` instead. +- Deprecated configuration `inlayHint.filetypes`, use `inlayHint.enable` with scoped languages instead. +- Deprecated configuration `semanticTokens.filetypes`, use `semanticTokens.enable` with scoped languages instead. +- Use `workspaceFolderValue` instead of `workspaceValue` for `ConfigurationInspect` returned by `WorkspaceConfiguration.inspect()`. + +# 2022-09-04 + +- Add configuration "snippet.choicesMenuPicker". + +# 2022-09-03 + +- Send "WinClosed" event to node client. +- Add `onDidFilterStateChange` and `onDidCursorMoved` to `TreeView`. +- Support `autoPreview` for outline. + +# 2022-09-02 + +- Support `diagnostic.virtualTextFormat`. +- Add command `workspace.writeHeapSnapshot`. + +# 2022-09-01 + +- Add configuration "suggest.asciiMatch" +- Support `b:coc_force_attach`. + +# 2022-08-31 + +- Add configuration "suggest.reversePumAboveCursor". +- Use `DiagnosticSign*` highlight groups when possible. +- Use `DiagnosticUnderline*` highlight groups when possible. + +# 2022-08-30 + +- Export `LineBuilder` class. + +# 2022-08-29 + +- Fix semanticTokens highlights unexpected cleared +- Fix range of `doQuickfix` action. +- Check reverse of `CocFloating`, use `border` and `Normal` highlight when reversed. +- Make `CocInlayHint` use background of `SignColumn`. +- Add command `document.toggleInlayHint`. + +# 2022-08-28 + +- Make `CocMenuSel` use background of `PmenuSel`. +- Snippet related configuration changed (old configuration still works until next release) + - "coc.preferences.snippetStatusText" -> "snippet.statusText" + - "coc.preferences.snippetHighlight" -> "snippet.highlight" + - "coc.preferences.nextPlaceholderOnDelete" -> "snippet.nextPlaceholderOnDelete" +- Add configuration `"list.smartCase"` +- Add configurations for inlay hint + - "inlayHint.refreshOnInsertMode" + - "inlayHint.enableParameter" + - "inlayHint.typeSeparator" + - "inlayHint.parameterSeparator" + - "inlayHint.subSeparator" + +# 2022-08-27 + +- Avoid use `EasyMotion#is_active`, use autocmd to disable linting. +- Show message when call hierarchy provider not found or bad position. + +# 2022-08-26 + +- Remove `completeOpt` from `workspace.env`. +- Add configuration `"diagnostic.virtualTextAlign"`. +- Add warning when required features not compiled with vim. +- Not echo error for semanticTokens request (log only). +- Merge results form providers when possible. + +# 2022-08-24 + +- Virtual text of suggest on vim9. +- Virtual text of diagnostics on vim9. +- Add configuration `inlayHint.filetypes`. +- Inlay hint support on vim9. + +# 2022-08-23 + +- Retry semanticTokens request on server cancel (LSP 3.17). +- `RelativePattern` support for `workspace.createFileSystemWatcher()`. +- `relativePatternSupport` for `DidChangeWatchedFiles` (LSP 3.17). +- Not echo error on `doComplete()`. + +# 2022-08-21 + +- Added `window.createFloatFactory()`, deprecated `FloatFactory` class. +- Support `labelDetails` field of `CompleteItem`(LSP 3.17). +- Added `triggerKind` to `CodeActionContext`, export `CodeActionTriggerKind`. + +# 2022-08-20 + +- Support pull diagnostics `:h coc-pullDiagnostics`. +- Break change: avoid extension overwrite builtin configuration defaults. +- Change default value of configuration "diagnostic.format". +- 'line' changes to 'currline' for `CocAction('codeAction')`. +- Check NodeJS version on syntax error. + +# 2022-08-10 + +- Change "notification.highlightGroup" default to "Normal". + +# 2022-08-07 + +- Add configuration 'suggest.pumFloatConfig'. + +# 2022-08-04 + +- Make diagnostic float window with the same background as CocFloating. + +# 2022-08-03 + +- Add highlight group 'CocFloatingDividingLine'. + +# 2022-08-01 + +- Use custom popup menu, #3862. +- Use "first" instead of "none" for configuration `suggest.selection`. +- Make "first" default for `suggest.selection`, like VSCode. +- Add default blue color for hlgroup `CocMenuSel`. + +# 2022-06-14 + +- Add highlight groups `CocListLine` and `CocListSearch`. + +# 2022-06-11 + +- Add configuration "notification.disabledProgressSources" +- Add "rounded" property to "floatConfig" + +# 2022-06-04 + +- Add configuration `workspace.openOutputCommand`. +- Log channel message of vim when `g:node_client_debug` enabled. + +# 2022-05-30 + +- Disable `progressOnInitialization` for language client by default. + +# 2022-05-28 + +- Support `repeat#set` for commands that make changes only. + +# 2022-05-24 + +- Add transition and annotation support for `workspace.applyEdits()`. +- Add command `workspace.undo` and `workspace.redo`. +- Remove configuration `coc.preferences.promptWorkspaceEdit`. +- Remove command `CocAction` and `CocFix`. + +# 2022-05-22 + +- Check for previous position when not able to find completion match. +- Add `content` support to `window.showMenuPicker()` + +# 2022-05-17 + +- Add `QuickPick` module. +- Add API `window.showQuickPick()` and `window.createQuickPick()`. + +# 2022-05-16 + +- Add properties `title`, `loading` & `borderhighlight` to `InputBox` + +# 2022-05-14 + +- Add `InputOption` support to `window.requestInput` +- Add API `window.createInputBox()`. + +# 2022-05-13 + +- Notification support like VSCode https://github.com/neoclide/coc.nvim/discussions/3813 +- Add configuration `notification.minProgressWidth` +- Add configuration `notification.preferMenuPicker` +- Support `source` in notification windows. + +# 2022-05-07 + +- Show sort method as description in outline view. +- Add configuration `outline.switchSortKey`, default to ``. +- Add configuration `outline.detailAsDescription`, default to `true`. +- Add variable `g:coc_max_treeview_width`. +- Add `position: 'center'` support to `window.showMenuPicker()` + +# 2022-05-06 + +- Use menu for `window.showQuickpick()`. +- Add configuration `outline.autoWidth`, default to `true`. + +# 2022-05-05 + +- Add key bindings to dialog (created by `window.showDialog()`) on neovim. + +# 2022-05-04 + +- Add `languages.registerInlayHintsProvider()` for inlay hint support. + +# 2022-04-25 + +- Add `LinkedEditing` support + +# 2022-04-23 + +- Add `WinScrolled` event to events. + +# 2022-04-20 + +- Select recent item when input is empty and selection is `recentUsedByPrefix`. +- Add `coc#snippet#prev()` and `coc#snippet#next()`. +- Add command `document.checkBuffer`. +- Add `region` param to `window.diffHighlights()`. + +# 2022-04-06 + +- `workspace.onDidOpenTextDocument` fire `contentChanges` as empty array when + document changed with same lines. + +# 2022-04-04 + +- Avoid `CompleteDone` cancel next completion. +- Avoid indent change on `` and `` during completion. +- Support `joinUndo` and `move` with `document.applyEdits()`. + +# 2022-04-02 + +- Change `suggest.triggerCompletionWait` default to `0`. +- Not trigger completion on `TextChangedP`. +- Remove configuration `suggest.echodocSupport`. +- Fix complettion triggered after ``. + +# 2022-03-31 + +- Check buffer rename on write. + +# 2022-03-30 + +- Improve words parse performance. +- Remove configurations `coc.source.around.firstMatch` and `coc.source.buffer.firstMatch`. +- Fix `coc.source.buffer.ignoreGitignore` not works + +# 2022-03-30 + +- Check document reload on detach. + +# 2022-03-29 + +- Add menu actions to refactor buffer. + +# 2022-03-12 + +- Avoid use `` for cancel completion. + +# 2022-03-05 + +- Make `WinClosed` event fires on `CursorHold` to support vim8. +- Add events `TabNew` and `TabClose`. +- Make outline reuse TreeView buffer. + +# 2022-03-02 + +- Add ultisnip option to `snippetManager.insertSnippet()` and + `snippetManager.resolveSnippet()`. +- Support ultisnip regex option: `/a` (ascii option). +- Support transform replacement of ultisnip, including: + - Variable placeholders, `$0`, `$1` etc. + - Escape sequence `\u` `\l` `\U` `\L` `\E` `\n` `\t` + - Conditional replacement: `(?no:text:other text)` + +# 2022-02-28 + +- Change `workspace.ignoredFiletypes` default value to `[]` + +# 2022-02-24 + +- Add `window.activeTextEditor`, `window.visibleTextEditors`. +- Add events `window.onDidChangeActiveTextEditor` `window.onDidChangeVisibleTextEditors`. +- Add class `RelativePattern`. +- Add `workspace.findFiles()`. + +# 2022-02-23 + +- Add `workspace.openTextDocument()` +- Add `Workspace.getRelativePath()`. +- Add `window.terminals` `window.onDidOpenTerminal` `window.onDidCloseTerminal` + and `window.createTerminal`. +- Add `exitStatus` property to `Terminal`. +- Support `strictEnv` in `TerminalOptions` on neovim. +- Deprecated warning for `workspace.createTerminal()`, + `workspace.onDidOpenTerminal` and `workspace.onDidCloseTerminal` + +# 2022-02-18 + +- Clear all highlights created by coc.nvim before restart. +- Support strike through for ansiparse. +- Support `highlights` for `Documentation` in float window. + +# 2022-02-17 + +- Change workspace configuration throw error when workspace folder can't be + resolved. +- Remove configuration `diagnostic.highlightOffset`. + +# 2022-02-15 + +- Add `events.race`. +- Change default `suggest.triggerCompletionWait` to 50. +- Support trigger completion after indent fix. + +# 2022-02-14 + +- Add `pumvisible` property to events. + +# 2022-02-10 + +- Add shortcut support for `window.showMenuPicker()`. +- Add configuration `dialog.shortcutHighlight` for shortcut highlight. +- Add configuration `list.menuAction` for choose action by menu picker. + +# 2022-02-09 + +- Add error log to `nvim_error_event`. +- Add `nvim.lua()` which replace `nvim.executeLua()` to typings.d.ts. + +# 2022-02-08 + +- Support `MenuItem` with disabled property for `window.showMenuPicker` +- Support show disabled code actions in menu picker. + +# 2022-02-07 + +- Change `:CocLocalConfig` to open configuration file of current workspace + folder. + +# 2022-02-05 + +- Support `version` from `textDocument/publishDiagnostics` notification's parameter. +- Support `codeDescription` of diagnostics by add href to float window. +- Support `showDocument` request from language server. +- Support `label` from DocumentSymbolOptions in outline tree. +- Support extra url use regexp under cursor with `openLink` action. +- Support `activeParameter` from signature information. +- Add `trimTrailingWhitespace`, `insertFinalNewline` and `trimFinalNewlines` to FormattingOptions. +- Add configuration `links.tooltip`, default to `false`. + +# 2022-02-04 + +- Add `--reverse` option to list. +- Add `` key-mapping to cancel list in preview window (neovim only). + +# 2022-02-02 + +- Remove `disableWorkspaceFolders` `disableDiagnostics` and `disableCompletion` + from language client option. +- Add configuration `documentHighlight.timeout`. +- Add `tabPersist` option to `ListAction`. +- Add `refactor` to `LocationList` + +# 2022-01-30 + +- Add configuration `diagnostics.virtualTextLevel`. +- Remove configuration `suggest.numberSelect` + +# 2022-01-26 + +- Use `nvim_buf_set_text` when possible to keep extmarks. + +# 2022-01-25 + +- Not trigger completion when filtered is succeed. +- Move methods `workspace.getSelectedRange` `workspace.selectRange` to `window` + module, show deprecated warning when using old methods. + +# 2022-01-23 + +- Support semantic tokens highlights from range provider. + +# 2022-01-22 + +- Not set `gravity` with api `nvim_buf_set_extmark` because highlight bug, wait neovim fix. +- Support watch later created workspace folders for file events. + +# 2022-01-21 + +- Changed semantic token highlight prefix from `CocSem_` to `CocSem`. +- Changed semantic token highlight disabled by default, use configuration + `semanticTokens.filetypes` +- Add configuration `semanticTokens.filetypes`. +- Add configuration `semanticTokens.highlightPriority`. +- Add configuration `semanticTokens.incrementTypes`. +- Add configuration `semanticTokens.combinedModifiers`. +- Add command `semanticTokens.refreshCurrent`. +- Add command `semanticTokens.inspect`. +- Add action `inspectSemanticToken`. +- Rework command `semanticTokens.checkCurrent` to show highlight information. +- Support semantic tokens highlight group composed with type and modifier. + +# 2022-01-21 + +- Add configuration `workspace.ignoredFolders`. +- Add configuration `workspace.workspaceFolderFallbackCwd`. + +# 2022-01-20 + +- Remove deprecated method `workspace.resolveRootFolder`. + +# 2022-01-17 + +- Extend `buffer.updateHighlights` to support `priority`, `combine`, `start_incl` and `end_incl`. +- Add configuration `diagnostic.highlightPriority`. +- Add configuration `colors.filetypes` and `colors.highlightPriority`. + +# 2022-01-16 + +- Add configuration `codeLens.position`. + +# 2022-01-14 + +- Add configuration `suggest.selection`. + +# 2022-01-13 + +- `codeLens.separator` now defaults to `""` and will be placed above lines on neovim >= 0.6.0 . +- Add configurations 'diagnostic.locationlistLevel', 'diagnostic.signLevel', 'diagnostic.messageLevel'. + +# 2022-01-12 + +- Add document.lineAt(), export TextLine class. +- Upgrade node-client, support nvim.exec(). +- Add documentHighlight.priority configuration. + +# 2019-08-18 0.0.74 + +- feat(cursors): support multiple cursors. +- feat(extensions): install missing extensions by CocInstall. +- feat(extensions): add command `extensions.forceUpdateAll`. +- feat(completion): rework preselect feature. +- feat(extension): use request for fetch package info. +- feat(language-client): support disableDynamicRegister configuration. +- feat(list): paste from vim register support on insert mode #1088. +- feat(plugin): add CocHasProvider(), close #1087. +- refactor(outline): not exclude variables and callback. +- refactor(diagnostic): remove timeout on InsertLeave. + +# 2019-07-11 0.0.73 + +- fix(completion): fix map of number select +- fix(languages): fix cursor position with snippet +- fix(completion): fix cursor position with additionalTextEdits +- fix(position): fix rangeOverlap check #961 +- fix(list): not change guicursor when it's empty +- fix(list): fix filter not work on loading +- fix(list): fix custom location list command not work +- fix(util): highlight & render on vim8 +- fix(handler): fix getCommands +- fix(handler): not check lastInsert on trigger signatureHelp +- fix(handler): fix check of signature help trigger +- fix(language-client): configuration for configured server, closes #930 +- fix(diagnostic): clear diagnostics on filetype change +- feat(plugin): add download & fetch modules +- feat(plugin): add highligher module +- feat(refactor): add `(coc-refactor)` for refactor window +- feat(extension): use mv module for folder rename +- feat(extension): support install tagged extension +- feat(extension): support custom extension root `g:coc_extension_root` +- feat(handler): close signature float window on ')' +- feat(list): support `g:coc_quickfix_open_command` +- feat(list): add eval action +- feat(list): add --tab list option +- feat(list): use highligher module for showHelp +- feat(terminal): add noa on window jump +- feat(terminal): support vim8 +- feat(diagnostic): add diagnosticRelated support +- feat(diagnostic): use text properties on vim8 +- feat(handler): improve signature float window + +# 2019-07-01 + +- feat(plugin): add CocStatusChange autocmd +- feat(extension): support both npm and yarn. +- feat(plugin): work on vim 8.0 +- feat(extensions): add lock & doc actions to extension source +- feat(extension): add proxy auth support (#920) +- feat(source): not change startcol for file source +- feat(completion): no numberSelect for number input +- feat(extensions): Use yarn when npm not found +- feat(completion): no popup for command line buffer +- feat(plugin): support only for codeActions action +- feat(task): debounce stdout +- feat(plugin): add keymaps for selection ranges +- feat(plugin): add function textobj +- feat(list): restore window height, closes #905 +- feat(handler): support signature.floatTimeout +- feat(configuration): support change of workspace configuration +- feat(diagnostic): add keymaps for jump error diagnostics +- feat(plugin): delay start on gvim, fix #659 + +# 2019-06-15 + +- feat(plugin): add popup support of vim +- refactor(completion): improve float support +- refactor(floating): remove unused code +- refactor(workspace): replace find-up +- refactor(handler): improve message for fold method +- fix(virtualtext): invalid highlight tag (#874) +- fix(snippets): fix plaintext check +- fix(highlight): catch error of child_process.spawn +- fix(highlight): use v:progpath, fix #871 +- fix(floatFactory): escape feedkeys +- fix(handler): fix getCurrentFunctionSymbol not work + +# 2019-06-12 + +- feat(document): add getVar method +- fix(util): not break selection on message +- fix(workspace): fix jumpTo not work on vim8 +- fix(completion): trigger completion with word character +- refactor(handler): return boolean result +- perf(workspace): improve jump performance +- fix(util): Escape filename for jump (#862) +- refactor(plugin): not show empty hover +- feat(outline): ignore callback function +- feat(workspace): support list of events with registerAutocmd +- fix(workspace): fix jump with tab drop +- refactor(language-client): change API of selectionRanges + +# 2019-06-09 + +- **Break change** `CocHighlightText` link to `CursorColumn` by default. +- **Break change** logger folder changed to `$XDG_RUNTIME_DIR` when exists. +- Add `` and `` support for list, #825. +- Add function `coc#add_command()`. +- Add `disableDiagnostics` & `disableCompletion` to languageclient configuration. +- Add `signature.triggerSignatureWait` configuration. +- Add vim-repeat support for run command and quickfix. +- Add preferred `codeAction` support. +- Add `prompt.paste` action to list. +- Add title as argument support for `codeAction` action. +- Add `suggest.floatEnable` configuration. +- Add `editor.action.organizeImport` command. +- Add `:CocAction` and `:CocFix` commands. +- Add `codeActions` action. +- Fix issues with list. + +# 2019-05-30 + +- **Break change** logger folder changed. +- Add support of vim-repeat for `` keymaps. +- Add `CocRegistNotification()` function. +- Add argument to rename action. +- Add `suggest.disableMenuShortcut` configuration. +- Add glob support for root patterns. +- Add `` keymap to list window. +- Add shortcut in sources list. +- Add `list.previewSplitRight` configuration. +- Add `triggerOnly` property to source. +- Add warning for duplicate extension. +- Bug fixes. + +# 2019-05-07 + +- **New feature** load extensions from coc-extensions folder. +- Add `workspace.renameCurrentFile` command. +- Add `FloatBuffer`, `FloatFactory` and `URI` to exports. +- Add `resolveItem` support to list. +- Fix prompt can't work when execute list action. +- Fix ansiparser for empty color ranges. +- Fix highlight only work with first 8 items. + +# 2019-04-27 + +- **Break change** vim-node-rpc not required on vim. +- **Break change** python not required on vim. +- **Break change** complete items would refreshed after 500ms when not finished. +- Add `additionalSchemes` for configured language server. +- Add support for jumpCommand as false. +- Fix `diagnostic.level` not work. + +# 2019-04-09 + +- **Break change** `--strictMatch` option of list renamed to `--strict` +- **Break change** `suggest.reloadPumOnInsertChar` support removed. +- **Break change** no more binary release. +- **Break change** logic for resolve workspace folder changed. +- Add `Task` module. +- Add `getCurrentFunctionSymbol` action. +- Add `list.source.outline.ctagsFiletypes` setting. +- Add `suggest.disableMenu` and `suggest.disableMenu` settings. +- Add `equal` support for complete items. +- Add support for do action with visual select lines of list. +- Add expand tilder support for language server command. +- Add switch matcher support to list. +- Add select all support to list. +- Add quickfix action to list. +- Add `selectionRanges` of LSP. +- Add load extensions for &rtp support. +- Add `coc#on_enter()` for formatOnType and add new lines on enter. +- Improve completion by support trigger completion when pumvisible. +- Remove document check on `BufWritePre`. + +# 2019-03-31 + +- **Break change** not using vim-node-rpc from npm modules any more. +- **Break change** rename `_` to `CocRefresh`. +- Fix wrong format options send to server. +- Fix throw error when extension root not created. +- Fix MarkedString not considered as markdown. +- Fix echo message on vim exit. +- Fix error throw on file watch. +- Fix unexpected update of user configuration. + +# 2019-03-28 + +- Add `workspace.resolveRootFolder`. +- Add `diagnostic.joinMessageLines` setting. +- Add `suggest.completionItemKindLabels` setting. +- Add `memento` support for extension. +- Add `workspace.getSelectedRange`. +- Add `Terminal` module. +- Add command `workbench.action.reloadWindow`. +- Fix extension not activated by command. +- Fix broken undo with floating window. +- Fix document create possible wrong uri & filetype. +- Improve highlight with floating window. + +# 2019-03-24 + +- **Break change** make number input not trigger completion. +- **Break change** make none keywords character doesn't filter completion. +- Add functions for check snippet state. +- Add setting `diagnostic.checkCurrentLine`. +- Fix `signature.target` not work. +- Fix flick of signature window. +- Fix EPIPE error of node-client. +- Fix wrong root of FileWatchSysmtem. + +# 2019-03-19 + +- **Break change** signature settings now starts `signature`. +- **Break change** default request timeout changed to 5s. +- **Break change** `commands.executeCommand` return promise. +- Add `coc.preferences.signatureHelpTarget`. +- Add `diagnostic.maxWindowHeight` & `signature.maxWindowHeight`. +- Add `diagnostic.enableSign`. +- Add support for `$COC_NO_PLUGINS`. +- Add keymaps: `(coc-float-hide)` and `(coc-float-jump)`. +- Add `coc.preferences.enableFloatHighlight`. +- Fix issues with floating window. +- Fix critical performance issue on diff text. +- Improve color of `CocHighlightText`. +- Improve sort of complete items. +- Improve extension list with version and open action. + +# 2019-03-16 + +- **Break change** change vim config home on windows to '\$HOME/vimfiles'. +- Add highlights to float windows. +- Add CocLocationsAsync(). +- Add support for `b:coc_suggest_disable`. +- Add support for `b:coc_suggest_blacklist`. +- Add setting `diagnostic.messageTarget`. +- Add floating window support for signatures. +- Fix issues with diagnostic float. +- Fix info of completion item not shown. +- Fix CocUpdateSync not work without service start. +- Fix wrong indent spaces of snippets. + +# 2019-03-11 + +- **Break change** change buffers instead of disk file for `workspace.applyEdits`. +- **Break change** add config errors to diagnostic list instead of jump locations. +- **Break change** hack for popup menu flicker is removed, use `suggest.reloadPumOnInsertChar` to enable it. +- **Break change** use `nvim_select_popupmenu_item` for number select completion. +- Add floating window for completion items. +- Add floating window support for diagnostics. +- Add floating window support for hover documentation. +- Add `coc#on_enter()` for notify enter pressed. +- Add setting `coc.preferences.useQuickfixForLocations`. +- Add support of `g:coc_watch_extensions` for automatic reload extensions. +- Add command: `editor.action.doCodeAction`. +- Fix service on restarted on windows after rebuild. +- Fix config of airline. +- Fix relative path of watchman. +- Improve Mru model. + +# 2019-03-03 + +- **Break change** signature change of `workspace.registerKeymap`. +- **Break change** `` of CocList can't be remapped any more. +- **Break change** use `yarnpkg` command instead of `yarn` when possible. +- **Break change** `noinsert` is removed from `completeopt` when `noselect` is + enabled, `` would break line by default. +- Add setting `diagnostic.refreshAfterSave`. +- Add chinese documentation. +- Add support of multiple line placeholder. +- Fix edit of nested snippet placeholders. +- Fix possible infinite create of documents. +- Fix check for resume completion. + +# 2019-02-25 + +- **Break change** default of `suggest.detailMaxLength` changed to 100. +- **Break change** option of `workspace.registerKeymap` changed. +- Add settings: `suggest.detailField`. +- Add check for autocmd in health check. +- Add trigger patterns support for complete sources. +- Add support of `coc-snippets-expand-jump` +- Add `source` option for completion start. +- Add `sources.createSource` method. + +# 2019-02-22 + +- **Break change** some configurations have been renamed, checkout #462. +- **Break change** no longer automatic trigger for CursorHoldI #452. +- **Break change** add preview option of `completeopt` according to `suggest.enablePreview`. +- Add statusItem for CocUpdate. +- Add `-sync` option for `:CocInstall` +- Add support for floating preview window. +- Add more module export. +- Fix check of vim-node-rpc throw error. +- Fix wrong line for TextEdit of complete item. +- Fix diagnostics not cleared on service restart. + +# 2019-02-17 + +- **Break change** completion resolve requires CompleteChanged autocmd. +- **Break change** mapping of space on insert mode of list removed. +- **Break change** kind of completion item use single letter. +- Fix snippet not works on GUI vim. +- Fix cursor vanish on vim by use timer hacks. +- Fix behavior of list preview window. +- Fix python check on vim. +- Fix CocJumpPlaceholder not fired. +- Fix vscode-open command not work. + +# 2019-02-12 + +- **Break change** function `coc#util#clearmatches` signature changed. +- Add check for python gtk module. +- Add check for vim-node-rpc update error. +- Fix source name of diagnostics. +- Fix empty buffers created on preview. +- Fix trigger of `CursorHoldI`. + +# 2019-02-11 + +- **Break change:** internal filetype of settings file changed to jsonc. +- **Break change:** `coc#util#install` changed to synchronize by default. +- **Break change:** no document highlight would be added for colored symbol. +- **Break change:** remove `coc.preferences.openResourceCommand`. +- Add fallback rename implementation which rename symbols on current buffer. +- Add command `:CocUpdateSync`. +- Add `coc.preferences.detailMaxLength` for slice detail on completion menu. +- Add cancel support for completion. +- Add `ctags` as fallback of document symbols list. +- Add default key-mappings for location actions. +- Add python check on vim. +- Add `disableSyntaxes` support for completion sources. +- Add support for change `isProgress` of `StatusBarItem` +- Add check of coc.nvim version for `CocUpdate` +- Add `coc.preferences.previewAutoClose`, default true. +- Add `workspace.add registerAutocmd`. +- Fix highlight not cleared on vim +- Fix health check of service state. +- Fix CursorHoldI not triggered on neovim. +- Fix sort of list not stable. + +# 2019-02-04 + +- **Break change:** no messages when documentSymbol and workspaceSymbol provider + not found. +- Add support for configure sign in statusline. +- Add help action for list. +- Fix parse error on extensions update. +- Fix wrong uri on windows. +- Fix cancel list without close ui. +- Improve startup time by remove jobwait. + +# 2019-02-02 + +- **Break change:** extensions now update automatically, prompt is removed. +- Add check for extension compatibility. +- Add transform support for placeholder. +- Add check for node version. +- Add error check for list. +- Add settings: `coc.preferences.diagnostic.virtualTextLines`. +- Fix preview window not shown. +- Fix highlight not cleared on vim. +- Fix highlight commands of list block vim on start. +- Improve extension load. +- Improve list experience. + +# 2019-01-28 + +- **Break change:** `coc.preferences.diagnostic.echoMessage` changed to enum. +- Add mru support for commands and lists list. +- Add `coc.preferences.diagnostic.refreshOnInsertMode` +- Add `Mru` module. +- Improve highlight for lists, support empty `filterLabel`. +- Fix `findLocations` not work with nest locations. +- Fix cursor position after apply additionalTextEdits. + +# 2019-01-24 + +- **Break change:** python code for denite support moved to separated repo. +- **Break change:** Quickfix list no longer used. +- Add list support. +- Add configuration: `coc.preferences.diagnostic.virtualText`. +- Add watch for `&rtp` change. +- Add support for configure `g:coc_user_config` and `g:coc_global_extensions` +- Add support for send request to coc on vim start. +- Add `g:coc_start_at_startup` support. +- Add configuration: `coc.preferences.invalidInsertCharacters`. +- Add configuration: `coc.preferences.snippetStatusText`. +- Add `coc#_insert_key()` for insert keymap. +- Add `workspace.registerExprKeymap()`. +- Add detect for `vim-node-rpc` abnormal exist. +- Add `requireRootPattern` to languageserver configuration. +- Fix git check, always generate keywords. +- Fix crash when `righleft` set to 1 on neovim. +- Fix snippet position could be wrong. + +# 2019-01-09 + +- **Break change:** throw error when languageserver id is invalid. +- Add watcher for languageserver configuration change. +- Fix possible invalid package.json. +- Fix applyEdits not work sometimes. +- Fix server still started when command search failed. +- Fix log file not writeable. +- Improve completion performance. + +# 2019-01-03 + +- **Break change:** using of `g:rooter_patterns` is removed. +- **Break change:** diagnostics would be updated in insert mode now. +- Add configuration: `coc.preferences.rootPatterns` +- Add `TM_SELECTED_TEXT` and `CLIPBOARD` support for snippets. +- Fix check of latest insert char failed. +- Fix highlight not cleared sometimes. + +# 2019-01-01 + +- Fix issues with completion. + +# 2018-12-31 + +- **Break change:** created keymaps use rpcrequest instead of rpcnotify. +- **Break change:** snippets provider is removed, use `coc-snippets` for + extension snippets. +- Add command: `coc.action.insertSnippet` +- Fix position of snippets. +- Fix modifier of registered keymaps. +- Fix completion triggered on complete done. +- Fix closure function possible conflict. +- Fix unexpected snippet cancel. +- Fix document applyEdits, always use current lines. +- Fix fail of yarn global command. +- Fix check of changedtick on completion done. +- Fix line used for textEdit of completion. +- Fix snippet canceled by `formatOnType`. +- Fix `CocJumpPlaceholder` not fired +- Optimize content synchronize. + +# 2018-12-27 + +- **Break change:** no more message on service ready. +- **Break change:** vim source now registered as extension. +- **Break change:** complete item sort have reworked. +- **Break change:** request send to coc would throw when service not ready. +- Add support for check current state on diagnostic update. +- Add `env` opinion for registered command languageserver. +- Add outputChannel for watchman. +- Add `coc#_select_confirm()` for trigger select and confirm. +- Add `coc.preferences.numberSelect`. +- Add priority support for format provider. +- Add `workspace.watchGlobal` and `workspace.watchOption` methods. +- Fix cursor disappear on `TextChangedP` with vim. +- Fix coc process not killed when update on windows. +- Fix snippet broken on vim. +- Fix support of startcol of completion result. +- Fix `labelOffsetSupport` wrong position. +- Fix flicking on neovim. +- Fix unicide not considered as iskeyword. +- Fix watchman client not initialized sometimes. +- Improve performance for parse iskeyword. +- Not echo message on vim exit. +- Not send empty configuration change to languageserver. + +# 2018-12-20 + +- **Break change** configuration for module language server, transport now + require specified value. +- **Break change** new algorithm for socre complete items. +- Add command `workspace.clearWatchman`. +- Add `quickfixs`, `doCodeAction` and `doQuickfix` actions. +- Add `g:vim_node_rpc_args` for debug purpose. +- Add `coc#add_extension()` for specify extensions to install. +- Fix clients not restarted on CocRestart. +- Fix `execArgv` and `runtime` not work for node language server. +- Fix detail of complete item not echoed sometimes. +- Fix actions missing when registered with same clientId. +- Fix issues with signature echo. +- Fix uri is wrong with whitespace. +- Improve highlight performance with `nvim_call_atomic`. + +# 2018-12-17 + +- **Break change** `vim-node-rpc` now upgrade in background. +- Add `ignoredRootPaths` to `languageserver` option. +- Add detect of vim running state. +- Add `client.vim` for create clients. +- Fix possible wrong current line of `completeResolve`. +- Fix snippet not work with `set virtualedit=all`. +- Fix default timeout to 2000. +- Fix file mode of log file. + +# 2018-12-12 + +- **Break change** `fixInsertedWord` fix inserted word which ends with word + after. +- **Break change** `onCompleteSelect` is removed. +- Add `workspace.registerKeymap` for register keymap. +- Add match score for sort complete items. +- Fix possible connection lost. +- Fix priority of diagnostic signs. +- Fix possible wrong uri. +- Fix `RevealOutputChannelOn` not default to `never`. +- Fix possible wrong line used for textEdit of complete item. +- Fix possible wrong cursor position of snippet after inserted. + +# 2018-12-08 + +- **Break change** default rootPath would be directory of current file, not cwd. +- **Break change** codeLens feature now disabled by default. +- **Break change** diagnostic prev/next now loop diagnostics. +- Add support of neovim highlight namespace. +- Add support for undo `additionalTextEdits` on neovim +- Fix configuration resolve could be wrong. +- Fix word of completion item could be wrong. +- Fix rootPath could be null. +- Fix highlight not cleared on restart. + +# 2018-12-06 + +- **Break change** `RevealOutputChannelOn` of language client default to + `never`. +- Fix can't install on windows vim. +- Fix `displayByAle` not clearing diagnostics. +- Add check for `vim-node-rpc` update on vim. +- Add `Resolver` module. +- Improve apply `WorkspaceEdit`, support `0` as document version and merge + edits for same document. + +# 2018-12-05 + +- Add `CocJumpPlaceholder` autocmd. +- Add `rootPatterns` to `languageserver` config. +- Add setting: `coc.preferences.hoverTarget`, support use echo. +- Add setting `coc.preferences.diagnostic.displayByAle` for use ale to display errors. +- Add setting `coc.preferences.extensionUpdateCheck` for control update check of + extensions. +- Add `coc#config` for set configuration in vim. +- Fix rootPath not resolved on initialize. +- Fix possible wrong `tabSize` by use `shiftwidth` option. +- Fix trigger of `documentColors` request. +- Fix `vim-node-rpc` service not work on windows vim. +- Fix `codeLens` not works. +- Fix highlight of signatureHelp. +- Fix watchman watching same root multiple times. +- Fix completion throw undefined error. +- Fix `open_terminal` not works on vim. +- Fix possible connection lost by use notification when possible. +- Fix process not terminated when connection lost. +- Rework diagnostics with task sequence. +- Rework configuration with more tests. + +# 2018-11-28 + +- _Break change_ signature help reworked, vim API for echo signature changed. +- Add `:CocInfo` command. +- Add trigger for signature help after function expand. +- Add echo message when provider not found for some actions. +- Add support for `formatexpr` +- Add support for locality bonus like VSCode. +- Add support of `applyAdditionalLEdits` on item selected by `` +- Add `coc.preferences.useQuickfixForLocations` +- Add `coc.preferences.messageLevel` +- Add support for trigger command which not registered by server. +- Add `g:coc_denite_quickfix_action` +- Fix insert unwanted word when trigger `commitCharacter`. +- Fix rpc request throw on vim. +- Fix `data` of complete item conflict. +- Fix code action not work sometime. +- Fix `coc.preferences.diagnostic.locationlist` not work. +- Fix `coc.preference.preferCompleteThanJumpPlaceholder`. +- Fix `workspace.jumpTo` not work sometime. +- Fix line indent for snippet. +- Fix trigger of `signatureHelp` and `onTypeFormat`. + +# 2018-11-24 + +- **Break change** sources excluding `around`, `buffer` or `file` are extracted + as extensions. +- **Break change** custom source doesn't exist any more. +- Add `coc.preferences.preferCompleteThanJumpPlaceholder` to make jump + placeholder behavior as confirm completion when possible. +- Add `CocDiagnosticChange` autocmd for force statusline update. +- Add `onDidUnloadExtension` event on extension unload. +- Fix `getDiagnosticsInRange`, consider all interactive ranges. +- Fix completion throw when `data` on complete item is `string`. +- Fix `commitCharacters` not works. +- Fix workspace methods: `renameFile`, `deleteFile` and `resolveRoot`. +- Fix textEdit of builtin sources not works. + +# 2018-11-19 + +- **Break change** snippet support reworked: support nest snippets, independent + session in each buffer and lots of fixes. +- **Break change** diagnostic list now sort by severity first. +- Add commands: `:CocUninstall` and `:CocOpenLog` +- Add cterm color for highlights. +- Add line highlight support for diagnostic. +- Add `coc.preferences.fixInsertedWord` to make complete item replace current word. +- Fix check confirm not works on vim sometimes. +- Fix check of `vim-node-rpc`. +- Fix preselect complete item not first sometimes. +- Improve completion sort result by consider more abort priority and recent + selected. +- Improve colors module, only highlight current buffer and when buffer changed. +- Improve `doc/coc.txt` + +# 2018-11-13 + +- **Break change** default completion timeout changed to 2s. +- **Break change** snippet session not canceled on `InsertLeave`, use + `` in normal mode to cancel. +- Add document color support. +- Add CocAction 'pickColor' and 'colorPresentation'. +- Add prompt for install vim-node-rpc module. +- Add support for `inComplete` completion result. +- Add status item for snippet session. +- Add support for fix inserted text of snippet completion item. +- Fix document highlight not cleared. +- Fix cancel behavior of snippet. +- Fix range check of edit on snippet session. +- Fix check of completion confirm. +- Fix highlight group 'CocHighlightWrite' not work. +- Fix command `editor.action.rename` not works. +- Fix throw error before initialize. +- Fix `g:coc_node_path` not working. +- Fix file source throw undefined error. +- Improve logic of sorting completion items, strict match items comes first. + +# 2018-11-07 + +- **Break change** word source removed from custom sources, enabled for markdown + by default. +- **Break change** ignore sortText when input.length > 3. +- **Break change** show prompt for install `coc-json` when not found. +- Fix document content synchronize could be wrong. +- Fix filetype not converted on completion. +- Fix complete item possible not resolved. +- Improve document highlight, no highlight when cursor moved. +- Improve completion score, use fuzzaldrin-plus replace fuzzaldrin. + +# 2018-11-02 + +- **Break change** no items from snippets source when input is empty. +- **Break change** `javascript.jsx` would changed to `javascriptreact` as languageId. +- **Break change** `typescript.tsx` would changed to `typescriptreact` as languageId. +- Add support for `commitCharacters` and `coc.preferences.acceptSuggestionOnCommitCharacter`. +- Add setting: `coc.preferences.diagnostic.level`. +- Add `g:coc_filetype_map` for customize mapping between filetype and languageId. +- Add `g:coc_node_path` for custom node executable. +- Add `workspaceFolders` feature to language client. +- Add `~` to complete item of snippet source. +- Add `onDidChangeWorkspaceFolder` event +- Fix `eol` issue by check `eol` option. +- Fix `workspace.document` could be null. +- Fix `workspaceFolder` could be null. +- Fix diagnostic for quickfix buffer. +- Fix resolve of `coc.preferences.rootPath` + +# 2018-10-29 + +- **Break change** diagnostic reworked, no refresh on insert mode. +- **Break change** keep `sortText` on filter for better result. +- **Break change** prefer trigger completion than filter, same as VSCode. +- **Break change** filetype of document would be first part of `&filetype` split by `.`. +- **Break change** prefer label as abbr for complete item. +- Fix creating wrong `textEdit` for snippet. +- Fix `startcol` of `CompleteResult` not working. +- Fix `workspaceConfiguration.toJSON` return invalid result. +- Fix `workspace.readFile` not synchronized with buffer. +- Fix `workspace.rootPath` not resolved as expected. +- Fix `CompletionItem` resolved multiple times. +- Fix check of `latestInsert` on completion. +- Fix `formatOnType` possible add unnecessary indent. +- Fix document content synchronized on vim. +- Fix confirm check of completion for all source. +- Fix document possible register multiple times. +- Fix completion always stopped when input is empty. +- Add warning message when definition not found. +- Add `redraw` after `g:coc_status` changed. +- Remove change of `virtualedit` option of snippet. +- Improved performance of filter completion items. + +# 2018-10-25 + +- Fix `implementation` and `typeDefinition` of language client not working. +- Fix `diffLines` return wrong range. +- Fix `setqflist` and `setloclist` not works on vim. +- Fix snippets and `additionalTextEdits` not works on vim. +- Fix append lines not works on vim. +- Fix highlight action not works on vim. +- Fix null version of `TextDocumentIdentifier` not handled. +- Add `workspace.registerTextDocumentContentProvider` for handle custom uri. +- Add `workspace.createStatusBarItem` method. + +# 2018-10-21 + +- **Break change**: `triggerAfterInsertEnter` now respect `minTriggerInputLength`. +- Add `coc.preferences.minTriggerInputLength`. +- Add command: `:CocCommand`. +- Fix `position` of `provideCompletionItems`. +- Fix content change not trigger after completion. +- Fix default sorters & matchers of denite sources. +- Fix `outputChannel` wrong `buftype`. +- Fix completion not works with `textEdit` add new lines. +- Fix first item not resolved when `noselect` is disabled +- Remove using of `diff` module. + +# 2018-10-18 + +- **Break change**: all buffers are created as document. +- **Break change**: retrieve workspace root on document create. +- Fix `uri` for all buffer types. +- Fix bad performance on parse keywords. +- Fix check of language client state. +- Fix register of `renameProvider` +- Fix `CocRequestAsync` not work. +- Fix `workspace.openResource` error with `wildignore` option. +- Fix output channel can't shown if hidden. +- Fix extension activate before document create. +- Add command `vscode.open` and `editor.action.restart`. +- Add `workspace.requestInput` method. +- Add support of `g:rooter_patterns` +- Add `storagePath` to `ExtensionContext` +- Add `workspace.env` property. +- Add support of scoped configuration. +- Disable buffer highlight on vim. + +# 2018-10-14 + +- **Break change** API: `workspace.resoleModule` only does resolve. +- **Break change** extension would still be loaded even if current coc version + miss match. +- **Break change** variables are removed from view of `Denite coc-symbols` +- Fix `workspace.applyEdits` +- Fix `console.log` throws in extension. +- Fix invalid `workspace.root` with custom buffer schema. +- Fix possible crash on neovim 0.3.1 by not attach terminal buffer. +- Fix jump position not stored when jump to current buffer position. +- Fix install function not works on vim. +- Add support for custom uri schema for `workspace.jumpTo` and `workspace.openResource` +- Add `workspace.findUp` for find up file of current buffer. +- Add `env` option for custom language server config. +- Add vim function: `CocRequest` and `CocRequestAsync` for send request to + language server in vim. +- Add `coc.preferences.parseKeywordsLimitLines` and `coc.preferences.hyphenAsKeyword` + for buffer parse. +- Rework completion for performance and accuracy. + +# 2018-10-05 + +- **Break change**, `workspace.onDidChangeConfiguration` emit `ConfigurationChangeEvent` now. +- Add `position` to function `coc#util#open_terminal`. +- Improve performance of completion by use vim's filter when possible. +- Fix service start multiple times. +- Fix parse of `iskeyword` option, consider `@-@`. +- Fix completion of snippet: cancel on line change. + +# 2018-10-01 + +- Improved document `didChange` before trigger completion. +- Add option `coc.preferences.triggerCompletionWait`, default 60. +- Add watch for `iskeyword` change. +- Fix snippet jump not works sometime. +- Fix possible wrong `rootPath` of language server. +- Fix highlight of highlight action not using terminal colors. +- Fix detect for insert new line character. + +# 2018-09-30 + +- Add quickfix source of denite and fzf +- Add option `coc.preferences.rootPath` +- Add option `revealOutputChannelOn` to language server. +- Fix jump of placeholder. +- Fix empty root on language server initialize. + +# 2018-09-28 + +- **Break change**: `coc.preferences.formatOnType` default to `false`. +- **Break change**: snippet completion disabled in `string` and `comment`. +- Add support for register local extension. +- Add title for commands in `Denite coc-command` +- Fix prompt hidden by echo message. +- Fix contribute commands not shown in denite interface. +- Fix parse of `iskeyword`, support character range. +- Fix `triggerKind` of completion. +- Fix install extension from url not reloaded. + +# 2018-09-27 + +- **Break change**: `:CocDisable` disabled all events from vim. +- **Break change**: new snippet implementation. + - Support multiple line snippet. + - Support VSCode snippet extension. + - Support completion of snippets from snippet extension. +- Add highlight groups for different severity. +- Add `coc.preferences.formatOnType` option. +- Add `coc.preferences.snippets.enable` option. +- Fix snippet not works as `insertText`. +- Fix echo message with multiple lines. +- Fix `signatureHelp` with `showcmd` disabled. +- Fix location list cleared on `:lopen`. +- Fix diagnostic info not cleared on `:CocDisable` +- Fix diagnostic info not cleared on buffer unload. +- Fix buffer highlight not cleared on `highlight` action. +- Fix format on type not work as expected. + +# 2018-09-24 + +- **Break change**: use `CursorMove` instead of `CursorHold` for diagnostic + message. +- **Break change**: direct move to diagnostic position would show diagnostic + message without truncate. +- **Break change**: snippet would be canceled when mode changed to normal, no + mapping of `` any more. +- Add format document on `insertLeave` when `onTypeFormat` is supported. +- Add buffer operations on resource edit. +- Add `uninstall` action for `Denite coc-extension`. +- Fix active extension on command not working. +- Fix delete file from resource edit not works. + +# 2018-09-20 + +- Fix diagnostic check next offset for diagnostics. +- Add `(coc-diagnostic-info)` for show diagnostic message without + truncate. + +# 2018-09-15 + +- Fix wrong configuration on update. +- Fix install command with tag version. +- Fix using of unsafe `new Buffer`. +- Add support of trace format & resource operations. +- Add support of json validation for extension. +- Add support of format on save by `coc.preferences.formatOnSaveFiletypes` + +# 2018-09-10 + +- Add `Denite coc-extension` for manage extensions. +- Add actions for manage extension including `toggleExtension` `reloadExtension` + `deactivateExtension` +- Add check for extension update everyday. +- Fix extensions using same process of coc itself. +- Fix `configurationSection` should be null if none was specified. + +# 2018-09-07 + +- **Break change**: all extension all separated from core, checkout + [Using coc extension](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions) +- Fix `textDocumentSync` option not work when received as object. +- Fix wrong diagnostic info when using multiple lint servers. +- Use `CursorHold` for show diagnostic message. +- Add option `coc.preferences.enableMessage` to disable showing of diagnostic + message. +- Add new events module for receive vim events. +- Add support for `prepareRename`. +- Add support for `CodeActionOptions` + +# 2018-08-30 + +- Fix wrong `triggerKind` from VSCode. +- Add `(coc-openlink)` for open link. +- Add `typescript.jsx` as valid typescript type. + +# 2018-08-23 + +- Fix sometimes client status invalid. +- Add multiply provider support for all features. +- Add `documentLink` support +- Add `documentHighlight` support +- Add `foldingRange` support +- Add support of `documentSelector` same as VSCode + +# 2018-08-21 + +- Fix diagnostic and arguments of tsserver. +- Add `keepfocus` option for `open_terminal`. +- Improve error catch of autocmds. +- Add `onTypeFormat` feature for language server +- Add `onTypeFormat` support for tsserver. +- Refactor and more tests of workspace. +- Fix `window/showMessageRequest` request. +- Use `callAsync` for async request to vim. +- Add `CocActionAsync` function send async request to server. + +# 2018-08-17 + +- Fix exists terminal buffer not watched. +- Fix buffer not attached after `edit!`. +- Fix clean diagnostics of `tsserver.watchBuild` command. +- Fix refresh of buffer. +- Fix document not found on `BufEnter`. + + Use `rpcrequest` for `BufCreate` + +- Fix no permission of log file. + + Disable create log file for root user. + +- Add more command for tsserver: + + - `tsserver.reloadProjects` + - `tsserver.openTsServerLog` + - `tsserver.goToProjectConfig` + - `tsserver.restart` + +- Add test for workspace. + +# 2018-08-16 + +- Improved for tsserver: + + - Add `watchBuild` command for build current project with watch in terminal. + - Support of untitled buffer + - Support `projectRootPath` + +- Fix detach error of document. +- Fix trigger characters not works for some source. +- Fix document possible not sync before save. +- Fix denite errors with 0 as result. +- Fix wrong arguments of tsserver refactor command. +- Use `drop` for workspace `openResource`. +- Add clear coc signs on `:CocRestart`. +- **Break change** all buffer types except `nofile` `help` and `quickfix` are + watched for changes. + +# 2018-08-15 + +- Fix filter of completion items on fast input. +- Fix sometimes fails of include & neosnippet source. +- Fix sometimes fails to find global modules. +- Improve complete source initialization. + + - Always respect change of configuration. + +- Add ability to start standalone coc service for debugging. + + - Use `NVIM_LISTEN_ADDRESS=/tmp/nvim nvim` to start + neovim. + - Start coc server by command like `node bin/server.js` + +- Add ability to recover from unload buffer. + + Sometimes `bufReadPost` `BufEnter` could be not be fired on buffer create, + check buffer on `CursorHold` and `TextChanged` to fix this issue. + +- Add tsserver features: `tsserver.formatOnSave` and `tsserver.organizeImportOnSave` + + Both default to false. + +- Add tests for completion sources. + +# 2018-08-14 + +- Fix remote source not working. +- Fix sort of completion items. +- Fix EPIPE error from net module. +- Add `tslint.lintProject` command. +- Add config `coc.preferences.maxCompleteItemCount`. +- Add `g:coc_auto_copen`, default to `1`. + +# 2018-08-12 + +- **Break change** `:CocRefresh` replaced with `call CocAction('refreshSource')`. +- Add support filetype change of buffer. +- Add basic test for completion. +- Improve loading speed, use child process to initialize vim sources. +- Improve install.sh, install node when it doesn't exist. +- Improve interface of workspace. +- Fix loading of configuration content. + +# 2018-08-11 + +- Fix configuration content not saved on change. +- Fix thrown error on watchman not found. +- Fix incompatible options of `child_process`. +- Fix location list for diagnostics. + + - Reset on `BufWinEnter`. + - Available for all windows of single buffer. + - Use replace on change for coc location list. + - Add debounce. + +- Fix signature help behaviour, truncate messages to not overlap. +- Reworks sources use async import. + +# 2018-08-10 + +- Fix dispose for all modules. +- Add support for multiple `addWillSaveUntilListener`. +- Fix `startcol` for json server. +- Add support filetype `javascriptreact` for tsserver. + +# 2018-08-09 + +- Add `coc#util#install` for installation. +- Add `install.cmd` for windows. + +# 2018-08-08 + +- Improved location list for diagnostics. +- Add `internal` option to command. + + Commands registered by server are internal. + +- Add support for multiple save wait until requests. + +# 2018-08-07 + +- Add `forceFullSync` to language server option. + +# 2018-08-05 + +- Improve eslint extension to use workspaceFolder. +- Fix watchman not works with multiple roots. +- Add feature: dynamic root support for workspace. +- **Break change** output channel of watchman is removed. + +# 2018-08-04 + +- Fix order of document symbols. +- Fix completion snippet with `$variable`. +- Add feature: expand snippet on confirm. +- Add feature: `(coc-complete-custom)` for complete custom sources. + + Default customs sources: `emoji`, `include` and `word` + +- **Break change** `emoji` `include` used for all filetypes by default. + +# 2018-08-03 + +- Add command `:CocErrors` for debug. +- Support `DocumentSymbol` for 'textDocument/documentSymbol' + +# 2018-08-02 + +- Fix error of language client with unsupported schema. + + No document event fired for unsupported schema (eg: fugitive://) + +- Fix update empty configuration not works. + +# 2018-07-31 + +- Improve file source triggered with dirname started path. + +# 2018-07-30 + +- Fix source ultisnip not working. +- Fix custom language client with command not working. +- Fix wrong arguments passed to `runCommand` function. +- Improve module install, add `sudo` for `npm install` on Linux. +- Improve completion on backspace. + - Completion is resumed when search is empty. + - Completion is triggered when user try to fix search. + +# 2018-07-29 + +- **Break change** all servers are decoupled from coc.nvim + + A prompt for download is shown when server not found. + +- **Break change** `vim-node-rpc` decoupled from coc.nvim + + A prompt would be shown to help user install vim-node-rpc in vim. + +- Add command `CocConfig` + +# 2018-07-28 + +- Fix uncaught exception error on windows. +- Use plugin root for assets resolve. +- Fix emoji source not triggered by `:`. +- Improve file source to recognize `~` as user home. + +# 2018-07-27 + +- Prompt user for download server module with big extension like `vetur` and `wxml-langserver` +- **Break change**, section of settings changed: `cssserver.[languageId]` moved to `[languageId]` + + For example: `cssserver.css` section is moved to `css` section. + + This makes coc settings of css languages the same as VSCode. + +- **Break change**, `stylelint` extension is disabled by default, add + + ``` + "stylelint.enable": true, + ``` + + to your `coc-settings.json` to enable it. + + User will be prompted to download server if `stylelint-langserver` is not + installed globally. + +- **Break change**, `triggerAfterInsertEnter` is always `true`, add + + ``` + "coc.preferences.triggerAfterInsertEnter": false, + ``` + + to your `coc-settings.json` to disable it. + +- **Break change**, when `autoTrigger` is `always` completion would be triggered + after completion item select. + +# 2018-07-24 + +- better statusline integration with airline and lightline. + +# 2018-07-23 + +- Coc service start much faster. +- Add vim-node-rpc module. +- **Break change** global function `CocAutocmd` and `CocResult` are removed. +- Support Vue with vetur + +# 2018-07-21 + +- Fix issue with `completeopt`. +- Add source `neosnippet`. +- Add source `gocode`. + +# 2018-07-20 + +- Add documentation for language server debug. +- Rework register of functions, avoid undefined function. + +# 2018-07-19 + +- Fix error of `isFile` check. +- Ignore undefined function on service start. + +# 2018-07-17 + +- Add `coc.preference.jumpCommand` to settings. +- Make coc service standalone. + +# 2018-07-16 + +- Support arguments for `runCommand` action. +- Add coc command `workspace.showOutput`. +- Support output channel for language server. +- Support `[extension].trace.server` setting for trace server communication. + +# 2018-07-15 + +- Support location list for diagnostic. +- Add tsserver project errors command. + +# 2018-07-14 + +- Add support for `preselect` of complete item. +- Add support for socket language server configuration. +- Fix configured language server doesn't work. +- Add `workspace.diffDocument` coc command. +- Fix buffer sometimes not attached. +- Improve completion of JSON extension. + +# 2018-07-13 + +- **Break change:** `diagnostic` in setting.json changed to `diagnostic`. +- Fix clearHighlight arguments. +- Add eslint extension https://github.com/Microsoft/vscode-eslint. +- Fix snippet break with line have \$variable. +- Use jsonc-parser replace json5. +- Add `data/schema.json` for coc-settings.json. + +# 2018-07-12 + +- Fix restart of tsserver not working. +- Fix edit of current buffer change jumplist by using `:keepjumps`. diff --git a/pack/acp/opt/coc.nvim/lua/coc/highlight.lua b/pack/acp/opt/coc.nvim/lua/coc/highlight.lua new file mode 100644 index 0000000..cbdd7d4 --- /dev/null +++ b/pack/acp/opt/coc.nvim/lua/coc/highlight.lua @@ -0,0 +1,85 @@ +local api = vim.api + +local M = {} + +-- Get single line extmarks +function M.getHighlights(bufnr, key, s, e) + if not api.nvim_buf_is_loaded(bufnr) then + return nil + end + s = s or 0 + e = e or -1 + local max = e == -1 and api.nvim_buf_line_count(bufnr) or e + 1 + local ns = api.nvim_create_namespace('coc-' .. key) + local markers = api.nvim_buf_get_extmarks(bufnr, ns, {s, 0}, {e, -1}, {details = true}) + local res = {} + for _, mark in ipairs(markers) do + local id = mark[1] + local line = mark[2] + local startCol = mark[3] + local details = mark[4] + local endCol = details.end_col + if line < max then + local delta = details.end_row - line + if delta <= 1 and (delta == 0 or endCol == 0) then + if startCol == endCol then + api.nvim_buf_del_extmark(bufnr, ns, id) + else + if delta == 1 then + local text = api.nvim_buf_get_lines(bufnr, line, line + 1, false)[1] or '' + endCol = #text + end + table.insert(res, {details.hl_group, line, startCol, endCol, id}) + end + end + end + end + return res +end + +local function addHighlights(bufnr, ns, highlights, priority) + for _, items in ipairs(highlights) do + local hlGroup = items[1] + local line = items[2] + local startCol = items[3] + local endCol = items[4] + local hlMode = items[5] and 'combine' or 'replace' + -- Error: col value outside range + pcall(api.nvim_buf_set_extmark, bufnr, ns, line, startCol, { + end_col = endCol, + hl_group = hlGroup, + hl_mode = hlMode, + right_gravity = true, + priority = type(priority) == 'number' and math.min(priority, 4096) or 4096 + }) + end +end + +local function addHighlightTimer(bufnr, ns, highlights, priority, maxCount) + local hls = {} + local next = {} + for i, v in ipairs(highlights) do + if i < maxCount then + table.insert(hls, v) + else + table.insert(next, v) + end + end + addHighlights(bufnr, ns, hls, priority) + if #next > 0 then + vim.defer_fn(function() + addHighlightTimer(bufnr, ns, next, priority, maxCount) + end, 30) + end +end + +function M.set(bufnr, ns, highlights, priority) + local maxCount = vim.g.coc_highlight_maximum_count + if #highlights > maxCount then + addHighlightTimer(bufnr, ns, highlights, priority, maxCount) + else + addHighlights(bufnr, ns, highlights, priority) + end +end + +return M diff --git a/pack/acp/opt/coc.nvim/package.json b/pack/acp/opt/coc.nvim/package.json new file mode 100644 index 0000000..3285f30 --- /dev/null +++ b/pack/acp/opt/coc.nvim/package.json @@ -0,0 +1,17 @@ +{ + "name": "coc.nvim-release", + "version": "0.0.82", + "description": "LSP based intellisense engine for neovim & vim8.", + "engines": { + "node": ">=12.12.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/neoclide/coc.nvim.git" + }, + "author": "Qiming Zhao ", + "bugs": { + "url": "https://github.com/neoclide/coc.nvim/issues" + }, + "homepage": "https://github.com/neoclide/coc.nvim#readme" +} diff --git a/pack/acp/opt/coc.nvim/plugin/coc.vim b/pack/acp/opt/coc.nvim/plugin/coc.vim new file mode 100644 index 0000000..2c22592 --- /dev/null +++ b/pack/acp/opt/coc.nvim/plugin/coc.vim @@ -0,0 +1,796 @@ +scriptencoding utf-8 +if exists('g:did_coc_loaded') || v:version < 800 + finish +endif + +function! s:checkVersion() abort + let l:unsupported = 0 + if get(g:, 'coc_disable_startup_warning', 0) != 1 + if has('nvim') + let l:unsupported = !has('nvim-0.4.0') + else + let l:unsupported = !has('patch-8.1.1719') + endif + + if l:unsupported == 1 + echohl Error + echom "coc.nvim requires at least Vim 8.1.1719 or Neovim 0.4.0, but you're using an older version." + echom "Please upgrade your (neo)vim." + echom "You can add this to your vimrc to avoid this message:" + echom " let g:coc_disable_startup_warning = 1" + echom "Note that some features may error out or behave incorrectly." + echom "Please do not report bugs unless you're using at least Vim 8.1.1719 or Neovim 0.4.0." + echohl None + sleep 2 + else + if !has('nvim-0.5.0') && !has('patch-8.2.0750') + echohl WarningMsg + echom "coc.nvim works best on vim >= 8.2.0750 and neovim >= 0.5.0, consider upgrade your vim." + echom "You can add this to your vimrc to avoid this message:" + echom " let g:coc_disable_startup_warning = 1" + echom "Note that some features may behave incorrectly." + echohl None + sleep 2 + elseif !has('nvim') && (!has('job') || !has('popupwin') || !has('textprop')) + echohl WarningMsg + echom "coc.nvim requires job, popupwin and textprop features of vim, consider recompile your vim." + echom "You can add this to your vimrc to avoid this message:" + echom " let g:coc_disable_startup_warning = 1" + echom "Note that some features may behave incorrectly." + echohl None + sleep 2 + endif + endif + endif +endfunction + +call s:checkVersion() + +let g:did_coc_loaded = 1 +let g:coc_service_initialized = 0 +let s:root = expand(':h:h') +let s:is_vim = !has('nvim') +let s:is_gvim = s:is_vim && has("gui_running") + +if get(g:, 'coc_start_at_startup', 1) && !s:is_gvim + call coc#rpc#start_server() +endif + +function! CocTagFunc(pattern, flags, info) abort + if a:flags !=# 'c' + " use standard tag search + return v:null + endif + return coc#rpc#request('getTagList', []) +endfunction + +" Used by popup prompt on vim +function! CocPopupCallback(bufnr, arglist) abort + if len(a:arglist) == 2 + if a:arglist[0] == 'confirm' + call coc#rpc#notify('PromptInsert', [a:arglist[1], a:bufnr]) + elseif a:arglist[0] == 'exit' + execute 'silent! bd! '.a:bufnr + "call coc#rpc#notify('PromptUpdate', [a:arglist[1]]) + elseif a:arglist[0] == 'change' + let text = a:arglist[1] + let current = getbufvar(a:bufnr, 'current', '') + if text !=# current + call setbufvar(a:bufnr, 'current', text) + let cursor = term_getcursor(a:bufnr) + let info = { + \ 'lnum': cursor[0], + \ 'col': cursor[1], + \ 'line': text, + \ 'changedtick': 0 + \ } + call coc#rpc#notify('CocAutocmd', ['TextChangedI', a:bufnr, info]) + endif + elseif a:arglist[0] == 'send' + call coc#rpc#notify('PromptKeyPress', [a:bufnr, a:arglist[1]]) + endif + endif +endfunction + +function! CocAction(name, ...) abort + if !get(g:, 'coc_service_initialized', 0) + throw 'coc.nvim not ready when invoke CocAction "'.a:name.'"' + endif + return coc#rpc#request(a:name, a:000) +endfunction + +function! CocHasProvider(name) abort + return coc#rpc#request('hasProvider', [a:name]) +endfunction + +function! CocActionAsync(name, ...) abort + return s:AsyncRequest(a:name, a:000) +endfunction + +function! CocRequest(...) abort + return coc#rpc#request('sendRequest', a:000) +endfunction + +function! CocNotify(...) abort + return coc#rpc#request('sendNotification', a:000) +endfunction + +function! CocRegisterNotification(id, method, cb) abort + call coc#on_notify(a:id, a:method, a:cb) +endfunction + +" Deprecated, use CocRegisterNotification instead +function! CocRegistNotification(id, method, cb) abort + call coc#on_notify(a:id, a:method, a:cb) +endfunction + +function! CocLocations(id, method, ...) abort + let args = [a:id, a:method] + copy(a:000) + return coc#rpc#request('findLocations', args) +endfunction + +function! CocLocationsAsync(id, method, ...) abort + let args = [a:id, a:method] + copy(a:000) + return s:AsyncRequest('findLocations', args) +endfunction + +function! CocRequestAsync(...) + return s:AsyncRequest('sendRequest', a:000) +endfunction + +function! s:AsyncRequest(name, args) abort + let Cb = empty(a:args)? v:null : a:args[len(a:args) - 1] + if type(Cb) == 2 + if !coc#rpc#ready() + call Cb('service not started', v:null) + else + call coc#rpc#request_async(a:name, a:args[0:-2], Cb) + endif + return '' + endif + call coc#rpc#notify(a:name, a:args) + return '' +endfunction + +function! s:CommandList(...) abort + let list = coc#rpc#request('commandList', a:000) + return join(list, "\n") +endfunction + +function! s:ExtensionList(...) abort + let stats = CocAction('extensionStats') + call filter(stats, 'v:val["isLocal"] == v:false') + let list = map(stats, 'v:val["id"]') + return join(list, "\n") +endfunction + +function! s:SearchOptions(...) abort + let list = ['-e', '--regexp', '-F', '--fixed-strings', '-L', '--follow', + \ '-g', '--glob', '--hidden', '--no-hidden', '--no-ignore-vcs', + \ '--word-regexp', '-w', '--smart-case', '-S', '--no-config', + \ '--line-regexp', '--no-ignore', '-x'] + return join(list, "\n") +endfunction + +function! s:LoadedExtensions(...) abort + let list = CocAction('loadedExtensions') + return join(list, "\n") +endfunction + +function! s:InstallOptions(...)abort + let list = ['-terminal', '-sync'] + return join(list, "\n") +endfunction + +function! s:OpenConfig() + let home = coc#util#get_config_home() + if !isdirectory(home) + echohl MoreMsg + echom 'Config directory "'.home.'" does not exist, create? (y/n)' + echohl None + let confirm = nr2char(getchar()) + redraw! + if !(confirm ==? "y" || confirm ==? "\r") + return + else + call mkdir(home, 'p') + end + endif + execute 'edit '.fnameescape(home.'/coc-settings.json') + call coc#rpc#notify('checkJsonExtension', []) +endfunction + +function! s:get_color(item, fallback) abort + let t = type(a:item) + if t == 1 + return a:item + endif + if t == 4 + let item = get(a:item, 'gui', {}) + let color = get(item, &background, a:fallback) + return type(color) == 1 ? color : a:fallback + endif + return a:fallback +endfunction + +function! s:AddAnsiGroups() abort + let color_map = {} + let colors = ['#282828', '#cc241d', '#98971a', '#d79921', '#458588', '#b16286', '#689d6a', '#a89984', '#928374'] + let names = ['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', 'grey'] + for i in range(0, len(names) - 1) + let name = names[i] + if exists('g:terminal_ansi_colors') + let color_map[name] = s:get_color(get(g:terminal_ansi_colors, i, colors[i]), colors[i]) + else + let color_map[name] = get(g:, 'terminal_color_'.i, colors[i]) + endif + endfor + try + for name in keys(color_map) + let foreground = toupper(name[0]).name[1:] + let foregroundColor = color_map[name] + for key in keys(color_map) + let background = toupper(key[0]).key[1:] + let backgroundColor = color_map[key] + exe 'hi default CocList'.foreground.background.' guifg='.foregroundColor.' guibg='.backgroundColor + endfor + exe 'hi default CocListFg'.foreground. ' guifg='.foregroundColor. ' ctermfg='.foreground + exe 'hi default CocListBg'.foreground. ' guibg='.foregroundColor. ' ctermbg='.foreground + endfor + catch /.*/ + " ignore invalid color + endtry +endfunction + +function! s:CreateHighlight(group, fg, bg) abort + let cmd = coc#highlight#compose(a:fg, a:bg) + if !empty(trim(cmd)) + exe 'hi default '.a:group.' '.cmd + else + exe 'hi default link '.a:group.' '.a:fg + endif +endfunction + +function! s:OpenDiagnostics(...) abort + let height = get(a:, 1, 0) + call coc#rpc#request('fillDiagnostics', [bufnr('%')]) + if height + execute ':lopen '.height + else + lopen + endif +endfunction + +function! s:Disable() abort + if get(g:, 'coc_enabled', 0) == 0 + return + endif + autocmd! coc_nvim + call coc#rpc#request('detach', []) + echohl MoreMsg + echom '[coc.nvim] Event disabled' + echohl None + let g:coc_enabled = 0 +endfunction + +function! s:Autocmd(...) abort + if !get(g:, 'coc_workspace_initialized', 0) + return + endif + call coc#rpc#notify('CocAutocmd', a:000) +endfunction + +function! s:HandleCharInsert(char, bufnr) abort + if get(g:, 'coc_feeding_keys', 0) + return + endif + if get(g:, 'coc_disable_space_report', 0) + let g:coc_disable_space_report = 0 + if a:char ==# ' ' + return + endif + endif + call s:Autocmd('InsertCharPre', a:char, a:bufnr) +endfunction + +function! s:HandleTextChangedI(bufnr) abort + if get(g:, 'coc_feeding_keys', 0) + unlet g:coc_feeding_keys + endif + call s:Autocmd('TextChangedI', a:bufnr, coc#util#change_info()) +endfunction + +function! s:HandleInsertLeave(bufnr) abort + call coc#pum#close() + call s:Autocmd('InsertLeave', a:bufnr) +endfunction + +function! s:HandleWinScrolled(winid) abort + if getwinvar(a:winid, 'float', 0) + call coc#float#nvim_scrollbar(a:winid) + endif + call s:Autocmd('WinScrolled', a:winid) +endfunction + +function! s:HandleWinClosed(winid) abort + call coc#float#on_close(a:winid) + call coc#notify#on_close(a:winid) + call s:Autocmd('WinClosed', a:winid) +endfunction + +function! s:SyncAutocmd(...) + if !get(g:, 'coc_workspace_initialized', 0) + return + endif + call coc#rpc#request('CocAutocmd', a:000) +endfunction + +function! s:VimLeavePre() abort + let g:coc_vim_leaving = 1 + call s:Autocmd('VimLeavePre') + if s:is_vim && exists('$COC_NVIM_REMOTE_ADDRESS') + " Helps to avoid connection error. + call coc#rpc#close_connection() + return + endif + if get(g:, 'coc_node_env', '') ==# 'test' + return + endif + if s:is_vim + call timer_start(1, { -> coc#client#kill('coc')}) + endif +endfunction + +function! s:VimEnter() abort + if coc#rpc#started() + if !exists('$COC_NVIM_REMOTE_ADDRESS') + call coc#rpc#notify('VimEnter', [coc#util#path_replace_patterns(), join(globpath(&runtimepath, "", 0, 1), ",")]) + endif + elseif get(g:, 'coc_start_at_startup', 1) + call coc#rpc#start_server() + endif + call s:Highlight() +endfunction + +function! s:Enable(initialize) + if get(g:, 'coc_enabled', 0) == 1 + return + endif + + let g:coc_enabled = 1 + sign define CocCurrentLine linehl=CocMenuSel + sign define CocListCurrent linehl=CocListLine + sign define CocTreeSelected linehl=CocTreeSelected + if s:is_vim + call coc#api#tabpage_ids() + endif + + augroup coc_nvim + autocmd! + + if !v:vim_did_enter + autocmd VimEnter * call s:VimEnter() + else + call s:Highlight() + endif + if s:is_vim + if exists('##DirChanged') + autocmd DirChanged * call s:Autocmd('DirChanged', getcwd()) + endif + if exists('##TerminalOpen') + autocmd TerminalOpen * call s:Autocmd('TermOpen', +expand('')) + endif + autocmd CursorMoved list:///* call coc#list#select(bufnr('%'), line('.')) + autocmd TabNew * call coc#api#tabpage_ids() + else + autocmd DirChanged * call s:Autocmd('DirChanged', get(v:event, 'cwd', '')) + autocmd TermOpen * call s:Autocmd('TermOpen', +expand('')) + autocmd WinEnter * call coc#float#nvim_win_enter(win_getid()) + endif + if exists('##CompleteChanged') + autocmd CompleteChanged * call timer_start(1, { -> coc#pum#close()}) + endif + autocmd CursorHold * call coc#float#check_related() + if exists('##WinClosed') + autocmd WinClosed * call s:HandleWinClosed(+expand('')) + elseif exists('##TabEnter') + autocmd TabEnter * call coc#notify#reflow() + endif + if exists('##WinScrolled') + autocmd WinScrolled * call s:HandleWinScrolled(+expand('')) + endif + autocmd TabNew * call s:Autocmd('TabNew', coc#util#tabnr_id(tabpagenr())) + autocmd TabClosed * call s:Autocmd('TabClosed', coc#util#tabpages()) + autocmd WinLeave * call s:Autocmd('WinLeave', win_getid()) + autocmd WinEnter * call s:Autocmd('WinEnter', win_getid()) + autocmd BufWinLeave * call s:Autocmd('BufWinLeave', +expand(''), bufwinid(+expand(''))) + autocmd BufWinEnter * call s:Autocmd('BufWinEnter', +expand(''), win_getid()) + autocmd FileType * call s:Autocmd('FileType', expand(''), +expand('')) + autocmd InsertCharPre * call s:HandleCharInsert(v:char, bufnr('%')) + if exists('##TextChangedP') + autocmd TextChangedP * call s:Autocmd('TextChangedP', +expand(''), coc#util#change_info()) + endif + autocmd TextChangedI * call s:HandleTextChangedI(+expand('')) + autocmd InsertLeave * call s:HandleInsertLeave(+expand('')) + autocmd InsertEnter * call s:Autocmd('InsertEnter', +expand('')) + autocmd BufHidden * call s:Autocmd('BufHidden', +expand('')) + autocmd BufEnter * call s:Autocmd('BufEnter', +expand('')) + autocmd TextChanged * call s:Autocmd('TextChanged', +expand(''), getbufvar(+expand(''), 'changedtick')) + autocmd BufWritePost * call s:Autocmd('BufWritePost', +expand(''), getbufvar(+expand(''), 'changedtick')) + autocmd CursorMoved * call s:Autocmd('CursorMoved', +expand(''), [line('.'), col('.')]) + autocmd CursorMovedI * call s:Autocmd('CursorMovedI', +expand(''), [line('.'), col('.')]) + autocmd CursorHold * call s:Autocmd('CursorHold', +expand(''), [line('.'), col('.')]) + autocmd CursorHoldI * call s:Autocmd('CursorHoldI', +expand(''), [line('.'), col('.')]) + autocmd BufNewFile,BufReadPost * call s:Autocmd('BufCreate', +expand('')) + autocmd BufUnload * call s:Autocmd('BufUnload', +expand('')) + autocmd BufWritePre * call s:SyncAutocmd('BufWritePre', +expand(''), bufname(+expand('')), getbufvar(+expand(''), 'changedtick')) + autocmd FocusGained * if mode() !~# '^c' | call s:Autocmd('FocusGained') | endif + autocmd FocusLost * call s:Autocmd('FocusLost') + autocmd VimResized * call s:Autocmd('VimResized', &columns, &lines) + autocmd VimLeavePre * call s:VimLeavePre() + autocmd BufReadCmd,FileReadCmd,SourceCmd list://* call coc#list#setup(expand('')) + autocmd BufWriteCmd __coc_refactor__* :call coc#rpc#notify('saveRefactor', [+expand('')]) + autocmd ColorScheme * call s:Highlight() | call s:Autocmd('ColorScheme') + augroup end + if a:initialize == 0 + call coc#rpc#request('attach', []) + echohl MoreMsg + echom '[coc.nvim] Event enabled' + echohl None + endif +endfunction + +function! s:Highlight() abort + hi default CocSelectedText ctermfg=Red guifg=#fb4934 guibg=NONE + hi default CocCodeLens ctermfg=Gray guifg=#999999 guibg=NONE + hi default CocUnderline term=underline cterm=underline gui=underline guisp=#ebdbb2 + hi default CocBold term=bold cterm=bold gui=bold + hi default CocItalic term=italic cterm=italic gui=italic + hi default CocStrikeThrough term=strikethrough cterm=strikethrough gui=strikethrough + hi default CocMarkdownLink ctermfg=Blue guifg=#15aabf guibg=NONE + hi default CocDisabled guifg=#999999 ctermfg=gray + hi default CocSearch ctermfg=Blue guifg=#15aabf guibg=NONE + hi default CocLink term=underline cterm=underline gui=underline guisp=#15aabf + if coc#highlight#get_contrast('Normal', has('nvim') ? 'NormalFloat' : 'Pmenu') > 2.0 + exe 'hi default CocFloating '.coc#highlight#create_bg_command('Normal', &background ==# 'dark' ? -30 : 30) + exe 'hi default CocMenuSel '.coc#highlight#create_bg_command('CocFloating', &background ==# 'dark' ? -20 : 20) + exe 'hi default CocFloatThumb '.coc#highlight#create_bg_command('CocFloating', &background ==# 'dark' ? -40 : 40) + hi default link CocFloatSbar CocFloating + else + exe 'hi default link CocFloating '.(has('nvim') ? 'NormalFloat' : 'Pmenu') + if coc#highlight#get_contrast('CocFloating', 'PmenuSel') > 2.0 + exe 'hi default CocMenuSel '.coc#highlight#create_bg_command('CocFloating', &background ==# 'dark' ? -30 : 30) + else + exe 'hi default CocMenuSel '.coc#highlight#get_hl_command(synIDtrans(hlID('PmenuSel')), 'bg', '237', '#13354A') + endif + hi default link CocFloatThumb PmenuThumb + hi default link CocFloatSbar PmenuSbar + endif + if coc#highlight#get_contrast('Normal', 'CursorLine') < 1.3 + " Avoid color too close + exe 'hi default CocListLine '.coc#highlight#create_bg_command('Normal', &background ==# 'dark' ? -20 : 20) + else + hi default link CocListLine CursorLine + endif + hi default link CocFloatActive CocSearch + hi default link CocFadeOut Conceal + hi default link CocMarkdownCode markdownCode + hi default link CocMarkdownHeader markdownH1 + hi default link CocDeprecatedHighlight CocStrikeThrough + hi default link CocUnusedHighlight CocFadeOut + hi default link CocListSearch CocSearch + hi default link CocListMode ModeMsg + hi default link CocListPath Comment + hi default link CocHighlightText CursorColumn + hi default link CocHoverRange Search + hi default link CocCursorRange Search + hi default link CocLinkedEditing CocCursorRange + hi default link CocHighlightRead CocHighlightText + hi default link CocHighlightWrite CocHighlightText + " Notification + hi default CocNotificationProgress ctermfg=Blue guifg=#15aabf guibg=NONE + hi default link CocNotificationButton CocUnderline + hi default link CocNotificationError CocErrorFloat + hi default link CocNotificationWarning CocWarningFloat + hi default link CocNotificationInfo CocInfoFloat + " Snippet + hi default link CocSnippetVisual Visual + " Tree view highlights + hi default link CocTreeTitle Title + hi default link CocTreeDescription Comment + hi default link CocTreeOpenClose CocBold + hi default link CocTreeSelected CursorLine + hi default link CocSelectedRange CocHighlightText + " Symbol highlights + hi default link CocSymbolDefault MoreMsg + "Pum + hi default link CocPumSearch CocSearch + hi default link CocPumDetail Comment + hi default link CocPumMenu CocFloating + hi default link CocPumShortcut Comment + hi default link CocPumDeprecated CocStrikeThrough + hi default CocVirtualText ctermfg=12 guifg=#504945 + hi default link CocPumVirtualText CocVirtualText + hi default link CocInputBoxVirtualText CocVirtualText + hi default link CocFloatDividingLine CocVirtualText + + if has('nvim-0.5.0') + hi default CocCursorTransparent gui=strikethrough blend=100 + endif + + let sign_colors = { + \ 'Error': ['Red', '#ff0000'], + \ 'Warn': ['Brown', '#ff922b'], + \ 'Info': ['Yellow', '#fab005'], + \ 'Hint': ['Blue', '#15aabf'] + \ } + for name in ['Error', 'Warning', 'Info', 'Hint'] + let suffix = name ==# 'Warning' ? 'Warn' : name + if hlexists('DiagnosticUnderline'.suffix) + exe 'hi default link Coc'.name.'Highlight DiagnosticUnderline'.suffix + else + exe 'hi default link Coc'.name.'Highlight CocUnderline' + endif + if hlexists('DiagnosticSign'.suffix) + exe 'hi default link Coc'.name.'Sign DiagnosticSign'.suffix + else + exe 'hi default Coc'.name.'Sign ctermfg='.sign_colors[suffix][0].' guifg='.sign_colors[suffix][1] + endif + if hlexists('DiagnosticVirtualText'.suffix) + exe 'hi default link Coc'.name.'VirtualText DiagnosticVirtualText'.suffix + else + call s:CreateHighlight('Coc'.name.'VirtualText', 'Coc'.name.'Sign', 'Normal') + endif + if hlexists('Diagnostic'.suffix) + exe 'hi default link Coc'.name.'Float Diagnostic'.suffix + else + call s:CreateHighlight('Coc'.name.'Float', 'Coc'.name.'Sign', 'CocFloating') + endif + endfor + + call s:CreateHighlight('CocInlayHint', 'CocHintSign', 'SignColumn') + for name in ['Parameter', 'Type'] + exe 'hi default link CocInlayHint'.name.' CocInlayHint' + endfor + + call s:AddAnsiGroups() + + if get(g:, 'coc_default_semantic_highlight_groups', 1) + let hlMap = { + \ 'Namespace': ['@namespace', 'Include'], + \ 'Type': ['@type', 'Type'], + \ 'Class': ['@constructor', 'Special'], + \ 'Enum': ['@type', 'Type'], + \ 'Interface': ['@type', 'Type'], + \ 'Struct': ['@structure', 'Identifier'], + \ 'TypeParameter': ['@parameter', 'Identifier'], + \ 'Parameter': ['@parameter', 'Identifier'], + \ 'Variable': ['@variable', 'Identifier'], + \ 'Property': ['@property', 'Identifier'], + \ 'EnumMember': ['@property', 'Constant'], + \ 'Event': ['@keyword', 'Keyword'], + \ 'Function': ['@function', 'Function'], + \ 'Method': ['@method', 'Function'], + \ 'Macro': ['@constant.macro', 'Define'], + \ 'Keyword': ['@keyword', 'Keyword'], + \ 'Modifier': ['@storageclass', 'StorageClass'], + \ 'Comment': ['@comment', 'Comment'], + \ 'String': ['@string', 'String'], + \ 'Number': ['@number', 'Number'], + \ 'Boolean': ['@boolean', 'Boolean'], + \ 'Regexp': ['@string.regex', 'String'], + \ 'Operator': ['@operator', 'Operator'], + \ 'Decorator': ['@symbol', 'Identifier'], + \ 'Deprecated': ['@text.strike', 'CocDeprecatedHighlight'] + \ } + for [key, value] in items(hlMap) + let ts = get(value, 0, '') + let fallback = get(value, 1, '') + execute 'hi default link CocSem'.key.' '.(coc#highlight#valid(ts) ? ts : fallback) + endfor + endif + let symbolMap = { + \ 'Keyword': ['@keyword', 'Keyword'], + \ 'Namespace': ['@namespace', 'Include'], + \ 'Class': ['@constructor', 'Special'], + \ 'Method': ['@method', 'Function'], + \ 'Property': ['@property', 'Identifier'], + \ 'Text': ['@text', 'CocSymbolDefault'], + \ 'Unit': ['@unit', 'CocSymbolDefault'], + \ 'Value': ['@value', 'CocSymbolDefault'], + \ 'Snippet': ['@snippet', 'CocSymbolDefault'], + \ 'Color': ['@color', 'Float'], + \ 'Reference': ['@text.reference', 'Constant'], + \ 'Folder': ['@folder', 'CocSymbolDefault'], + \ 'File': ['@file', 'Statement'], + \ 'Module': ['@module', 'Statement'], + \ 'Package': ['@package', 'Statement'], + \ 'Field': ['@field', 'Identifier'], + \ 'Constructor': ['@constructor', 'Special'], + \ 'Enum': ['@type', 'CocSymbolDefault'], + \ 'Interface': ['@type', 'CocSymbolDefault'], + \ 'Function': ['@function', 'Function'], + \ 'Variable': ['@variable.builtin', 'Special'], + \ 'Constant': ['@constant', 'Constant'], + \ 'String': ['@string', 'String'], + \ 'Number': ['@number', 'Number'], + \ 'Boolean': ['@boolean', 'Boolean'], + \ 'Array': ['@array', 'CocSymbolDefault'], + \ 'Object': ['@object', 'CocSymbolDefault'], + \ 'Key': ['@key', 'Identifier'], + \ 'Null': ['@null', 'Type'], + \ 'EnumMember': ['@property', 'Identifier'], + \ 'Struct': ['@structure', 'Keyword'], + \ 'Event': ['@constant', 'Constant'], + \ 'Operator': ['@operator', 'Operator'], + \ 'TypeParameter': ['@parameter', 'Identifier'], + \ } + for [key, value] in items(symbolMap) + let hlGroup = coc#highlight#valid(value[0]) ? value[0] : get(value, 1, 'CocSymbolDefault') + if hlexists(hlGroup) + execute 'hi default CocSymbol'.key.' '.coc#highlight#get_hl_command(synIDtrans(hlID(hlGroup)), 'fg', '223', '#ebdbb2') + endif + endfor +endfunction + +function! s:ShowInfo() + if coc#rpc#ready() + call coc#rpc#notify('showInfo', []) + else + let lines = [] + echomsg 'coc.nvim service not started, checking environment...' + let node = get(g:, 'coc_node_path', $COC_NODE_PATH == '' ? 'node' : $COC_NODE_PATH) + if !executable(node) + call add(lines, 'Error: '.node.' is not executable!') + else + let output = trim(system(node . ' --version')) + let ms = matchlist(output, 'v\(\d\+\).\(\d\+\).\(\d\+\)') + if empty(ms) || str2nr(ms[1]) < 14 || (str2nr(ms[1]) == 14 && str2nr(ms[2]) < 14) + call add(lines, 'Error: Node version '.output.' < 14.14.0, please upgrade node.js') + endif + endif + " check bundle + let file = s:root.'/build/index.js' + if !filereadable(file) + call add(lines, 'Error: javascript bundle not found, please compile code of coc.nvim by esbuild.') + endif + if !empty(lines) + botright vnew + setl filetype=nofile + call setline(1, lines) + else + if get(g:, 'coc_start_at_startup',1) + echohl MoreMsg | echon 'Service stopped for some unknown reason, try :CocStart' | echohl None + else + echohl MoreMsg | echon 'Start on startup is disabled, try :CocStart' | echohl None + endif + endif + endif +endfunction + +function! s:CursorRangeFromSelected(type, ...) abort + " add range by operator + call coc#rpc#request('cursorsSelect', [bufnr('%'), 'operator', a:type]) +endfunction + +function! s:FormatFromSelected(type) + call CocActionAsync('formatSelected', a:type) +endfunction + +function! s:CodeActionFromSelected(type) + call CocActionAsync('codeAction', a:type) +endfunction + +function! s:CodeActionRefactorFromSelected(type) + call CocActionAsync('codeAction', a:type, ['refactor'] ,v:true) +endfunction + +command! -nargs=0 CocOutline :call coc#rpc#notify('showOutline', []) +command! -nargs=? CocDiagnostics :call s:OpenDiagnostics() +command! -nargs=0 CocInfo :call s:ShowInfo() +command! -nargs=0 CocOpenLog :call coc#rpc#notify('openLog', []) +command! -nargs=0 CocDisable :call s:Disable() +command! -nargs=0 CocEnable :call s:Enable(0) +command! -nargs=0 CocConfig :call s:OpenConfig() +command! -nargs=0 CocLocalConfig :call coc#rpc#notify('openLocalConfig', []) +command! -nargs=0 CocRestart :call coc#rpc#restart() +command! -nargs=0 CocStart :call coc#rpc#start_server() +command! -nargs=0 CocPrintErrors :call coc#rpc#show_errors() +command! -nargs=1 -complete=custom,s:LoadedExtensions CocWatch :call coc#rpc#notify('watchExtension', []) +command! -nargs=+ -complete=custom,s:SearchOptions CocSearch :call coc#rpc#notify('search', []) +command! -nargs=+ -complete=custom,s:ExtensionList CocUninstall :call CocActionAsync('uninstallExtension', ) +command! -nargs=* -complete=custom,s:CommandList -range CocCommand :call coc#rpc#notify('runCommand', []) +command! -nargs=* -complete=custom,coc#list#options CocList :call coc#rpc#notify('openList', []) +command! -nargs=? -complete=custom,coc#list#names CocListResume :call coc#rpc#notify('listResume', []) +command! -nargs=? -complete=custom,coc#list#names CocListCancel :call coc#rpc#notify('listCancel', []) +command! -nargs=? -complete=custom,coc#list#names CocPrev :call coc#rpc#notify('listPrev', []) +command! -nargs=? -complete=custom,coc#list#names CocNext :call coc#rpc#notify('listNext', []) +command! -nargs=? -complete=custom,coc#list#names CocFirst :call coc#rpc#notify('listFirst', []) +command! -nargs=? -complete=custom,coc#list#names CocLast :call coc#rpc#notify('listLast', []) +command! -nargs=0 CocUpdate :call coc#util#update_extensions(1) +command! -nargs=0 -bar CocUpdateSync :call coc#util#update_extensions() +command! -nargs=* -bar -complete=custom,s:InstallOptions CocInstall :call coc#util#install_extension([]) + +call s:Enable(1) +augroup coc_dynamic_autocmd +augroup END +augroup coc_dynamic_content +augroup END +augroup coc_dynamic_option +augroup END + +" Default key-mappings for completion +if empty(mapcheck('', 'i')) + inoremap coc#pum#visible() ? coc#pum#next(1) : "\" +endif +if empty(mapcheck('', 'i')) + inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" +endif +if empty(mapcheck('', 'i')) + inoremap coc#pum#visible() ? coc#pum#next(0) : "\" +endif +if empty(mapcheck('', 'i')) + inoremap coc#pum#visible() ? coc#pum#prev(0) : "\" +endif +if empty(mapcheck('', 'i')) + inoremap coc#pum#visible() ? coc#pum#cancel() : "\" +endif +if empty(mapcheck('', 'i')) + inoremap coc#pum#visible() ? coc#pum#confirm() : "\" +endif +if empty(mapcheck('', 'i')) + inoremap coc#pum#visible() ? coc#pum#scroll(1) : "\" +endif +if empty(mapcheck('', 'i')) + inoremap coc#pum#visible() ? coc#pum#scroll(0) : "\" +endif + +vnoremap (coc-range-select) :call CocActionAsync('rangeSelect', visualmode(), v:true) +vnoremap (coc-range-select-backward) :call CocActionAsync('rangeSelect', visualmode(), v:false) +nnoremap (coc-range-select) :call CocActionAsync('rangeSelect', '', v:true) +nnoremap (coc-codelens-action) :call CocActionAsync('codeLensAction') +vnoremap (coc-format-selected) :call CocActionAsync('formatSelected', visualmode()) +vnoremap (coc-codeaction-selected) :call CocActionAsync('codeAction', visualmode()) +vnoremap (coc-codeaction-refactor-selected) :call CocActionAsync('codeAction', visualmode(), ['refactor'], v:true) +nnoremap (coc-codeaction-selected) :set operatorfunc=CodeActionFromSelectedg@ +nnoremap (coc-codeaction-refactor-selected) :set operatorfunc=CodeActionRefactorFromSelectedg@ +nnoremap (coc-codeaction) :call CocActionAsync('codeAction', '') +nnoremap (coc-codeaction-line) :call CocActionAsync('codeAction', 'currline') +nnoremap (coc-codeaction-cursor) :call CocActionAsync('codeAction', 'cursor') +nnoremap (coc-codeaction-refactor) :call CocActionAsync('codeAction', 'cursor', ['refactor'], v:true) +nnoremap (coc-codeaction-source) :call CocActionAsync('codeAction', '', ['source'], v:true) +nnoremap (coc-rename) :call CocActionAsync('rename') +nnoremap (coc-format-selected) :set operatorfunc=FormatFromSelectedg@ +nnoremap (coc-format) :call CocActionAsync('format') +nnoremap (coc-diagnostic-info) :call CocActionAsync('diagnosticInfo') +nnoremap (coc-diagnostic-next) :call CocActionAsync('diagnosticNext') +nnoremap (coc-diagnostic-prev) :call CocActionAsync('diagnosticPrevious') +nnoremap (coc-diagnostic-next-error) :call CocActionAsync('diagnosticNext', 'error') +nnoremap (coc-diagnostic-prev-error) :call CocActionAsync('diagnosticPrevious', 'error') +nnoremap (coc-definition) :call CocActionAsync('jumpDefinition') +nnoremap (coc-declaration) :call CocActionAsync('jumpDeclaration') +nnoremap (coc-implementation) :call CocActionAsync('jumpImplementation') +nnoremap (coc-type-definition) :call CocActionAsync('jumpTypeDefinition') +nnoremap (coc-references) :call CocActionAsync('jumpReferences') +nnoremap (coc-references-used) :call CocActionAsync('jumpUsed') +nnoremap (coc-openlink) :call CocActionAsync('openLink') +nnoremap (coc-fix-current) :call CocActionAsync('doQuickfix') +nnoremap (coc-float-hide) :call coc#float#close_all() +nnoremap (coc-float-jump) :call coc#float#jump() +nnoremap (coc-command-repeat) :call CocAction('repeatCommand') +nnoremap (coc-refactor) :call CocActionAsync('refactor') + +nnoremap (coc-cursors-operator) :set operatorfunc=CursorRangeFromSelectedg@ +vnoremap (coc-cursors-range) :call CocAction('cursorsSelect', bufnr('%'), 'range', visualmode()) +nnoremap (coc-cursors-word) :call CocAction('cursorsSelect', bufnr('%'), 'word', 'n') +nnoremap (coc-cursors-position) :call CocAction('cursorsSelect', bufnr('%'), 'position', 'n') + +vnoremap (coc-funcobj-i) :call CocAction('selectSymbolRange', v:true, visualmode(), ['Method', 'Function']) +vnoremap (coc-funcobj-a) :call CocAction('selectSymbolRange', v:false, visualmode(), ['Method', 'Function']) +onoremap (coc-funcobj-i) :call CocAction('selectSymbolRange', v:true, '', ['Method', 'Function']) +onoremap (coc-funcobj-a) :call CocAction('selectSymbolRange', v:false, '', ['Method', 'Function']) + +vnoremap (coc-classobj-i) :call CocAction('selectSymbolRange', v:true, visualmode(), ['Interface', 'Struct', 'Class']) +vnoremap (coc-classobj-a) :call CocAction('selectSymbolRange', v:false, visualmode(), ['Interface', 'Struct', 'Class']) +onoremap (coc-classobj-i) :call CocAction('selectSymbolRange', v:true, '', ['Interface', 'Struct', 'Class']) +onoremap (coc-classobj-a) :call CocAction('selectSymbolRange', v:false, '', ['Interface', 'Struct', 'Class']) diff --git a/vimrc b/vimrc index 41adaed..955a3c8 100644 --- a/vimrc +++ b/vimrc @@ -230,6 +230,10 @@ if has('wildmenu') set wildmenu endif +if has("patch-8.1.1719") && (executable("nodejs") || executable("node")) + packadd coc.nvim +endif + function! ACPToggleMargins() execute "set colorcolumn=" . (&colorcolumn == "0" ? "73,81" : "0") endfunction